From 9500aca754058bff18ddf35db62852ca4f722c63 Mon Sep 17 00:00:00 2001 From: Josip Sokcevic Date: Fri, 13 Dec 2024 18:24:20 +0000 Subject: [PATCH] sync: Delete symlinks relative to client topdir If repo sync is invoked outside the repo root, and the latest manifest removes symlinks, repo incorrectly tries to remove symlink - it starts from `cwd` instead of the repo root. Bug: b/113935847 Bug: 40010423 Change-Id: Ia50ea70a376e38c94389880f020c80da3c3f453c Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/445901 Tested-by: Josip Sokcevic Reviewed-by: Gavin Mak --- subcmds/sync.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/subcmds/sync.py b/subcmds/sync.py index 17c8b9bf..7c4c468a 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py @@ -1442,7 +1442,10 @@ later is required to fix a server side protocol bug. for need_remove_file in need_remove_files: # Try to remove the updated copyfile or linkfile. # So, if the file is not exist, nothing need to do. - platform_utils.remove(need_remove_file, missing_ok=True) + platform_utils.remove( + os.path.join(self.client.topdir, need_remove_file), + missing_ok=True, + ) # Create copy-link-files.json, save dest path of "copyfile" and # "linkfile".