Add support for long paths

* Add more file i/o wrappers in platform_utils to allow using
  long paths (length > MAX_PATH) on Windows.

* Paths using the long path syntax ("\\?\" prefix) should never
  escape the platform_utils API surface area, so that this
  specific syntax is not visible to the rest of the repo code base.

* Forward many calls from os.xxx to platform_utils.xxx in various place
  to ensure long paths support, specifically when repo decides to delete
  obsolete directories.

* There are more places that need to be converted to support long paths,
  this commit is an initial effort to unblock a few common use cases.

* Also, fix remove function to handle directory symlinks

Change-Id: If82ccc408e516e96ff7260be25f8fd2fe3f9571a
This commit is contained in:
Renaud Paquay
2018-09-27 10:46:58 -07:00
parent b3133a3164
commit bed8b62345
7 changed files with 139 additions and 43 deletions

View File

@ -503,7 +503,7 @@ def close_ssh():
d = ssh_sock(create=False)
if d:
try:
os.rmdir(os.path.dirname(d))
platform_utils.rmdir(os.path.dirname(d))
except OSError:
pass