summaryrefslogtreecommitdiffstats
path: root/release
diff options
context:
space:
mode:
authorCarlos Fernandez <carlosfsanz@meta.com>2026-05-07 09:00:33 -0700
committergerrit-scoped@luci-project-accounts.iam.gserviceaccount.com <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com>2026-05-12 11:10:43 -0700
commit5534f164d6aff567f7ea0b5b41e2e5bb35a0212c (patch)
treec5cfaedb059c82a61bf0972b743cd5470fdc7fb9 /release
parent67e52a120b210f70b7a5de06996d9036f9f68011 (diff)
downloadgit-repo-5534f164d6aff567f7ea0b5b41e2e5bb35a0212c.tar.gz
linkfile: Handle directory-to-symlink transitions safely
When a manifest changes from individual linkfiles inside a directory (e.g. dest=".llms/rules", dest=".llms/skills") to a single linkfile for the whole directory (e.g. dest=".llms", src="dot-llms"), two things need to happen: 1. __linkIt must replace a real directory with a symlink. Use os.rmdir() instead of platform_utils.remove() for real directories. rmdir only removes empty directories, so user-created content is never deleted. 2. UpdateCopyLinkfileList must handle the cleanup correctly: - Use os.rmdir() for directories (safe for non-empty) - Remove empty parent directories after cleaning old dests - Retry _CopyAndLinkFiles for all projects, since in interleaved sync mode _CopyAndLinkFiles runs before cleanup and may have failed because the directory was not yet empty Change-Id: I0437b80beab98bce064cea81c11c47d699be91aa Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/569243 Tested-by: Carlos Fernandez <carlosfsanz@meta.com> Reviewed-by: Mike Frysinger <vapier@google.com> Reviewed-by: Gavin Mak <gavinmak@google.com> Commit-Queue: Carlos Fernandez <carlosfsanz@meta.com>
Diffstat (limited to 'release')
0 files changed, 0 insertions, 0 deletions