mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
platform_utils: os.rename exception when src and des on different file system
Symptom: repo sync exception Root Cause: os.rename only works when source and destination are on the same file system Solution: using shutil.move to save disk usage, I create links for projects and project-objects, link to folder on another disk lrwxrwxrwx 1 owenwen owenwen 47 Jun 9 16:40 project-objects -> /disk3/AndroidLocalRepos/.repo/project-objects/ lrwxrwxrwx 1 owenwen owenwen 40 Jun 9 16:40 projects -> /disk3/AndroidLocalRepos/.repo/projects/ below are exception I met: """ Traceback (most recent call last): File "/usr/lib/python3.6/multiprocessing/pool.py", line 119, in worker result = (True, func(*args, **kwds)) File "/usr/lib/python3.6/multiprocessing/pool.py", line 44, in mapstar return list(map(*args)) File "/disk2/Android11/.repo/repo/subcmds/sync.py", line 550, in _CheckoutOne project.Sync_LocalHalf(syncbuf, force_sync=force_sync) File "/disk2/Android11/.repo/repo/project.py", line 1251, in Sync_LocalHalf self._InitWorkTree(force_sync=force_sync, submodules=submodules) File "/disk2/Android11/.repo/repo/project.py", line 2801, in _InitWorkTree self._CheckDirReference(self.gitdir, dotgit, share_refs=True) File "/disk2/Android11/.repo/repo/project.py", line 2674, in _CheckDirReference platform_utils.rename(dst_path, src_path) File "/disk2/Android11/.repo/repo/platform_utils.py", line 127, in rename os.rename(src, dst) OSError: [Errno 18] Invalid cross-device link: '/disk2/Android11/system/libhidl/.git/packed-refs' -> '/disk2/Android11/.repo/projects/system/libhidl.git/packed-refs' """ Change-Id: Ifda2f16530cc5a8f280169f482ee858f9e5241d3 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/316002 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: Mike Frysinger <vapier@google.com>
This commit is contained in:
parent
a84f43a006
commit
366824937c
@ -124,7 +124,7 @@ def rename(src, dst):
|
||||
else:
|
||||
raise
|
||||
else:
|
||||
os.rename(src, dst)
|
||||
shutil.move(src, dst)
|
||||
|
||||
|
||||
def remove(path):
|
||||
|
Loading…
Reference in New Issue
Block a user