git-repo/subcmds
Josip Sokcevic 5554572f02 sync: Introduce git checkout levels
If a repo manifest is updated so that project B is placed within a
project A, and if project A had content in new B's location in the old
checkout, then repo sync could break depending on checkout order, since
B can't be checked out before A.

This change introduces checkout levels which enforces right sequence of
checkouts while still allowing for parallel checkout. In an example
above, A will always be checked out first before B.

BUG=b:325119758
TEST=./run_tests, manual sync on ChromeOS repository

Change-Id: Ib3b5e4d2639ca56620a1e4c6bf76d7b1ab805250
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/410421
Tested-by: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: Greg Edelston <gredelston@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2024-02-27 17:28:33 +00:00
..
__init__.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00
abandon.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00
branches.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00
checkout.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00
cherry_pick.py Update logger.warn to logger.warning 2023-10-13 19:34:26 +00:00
diff.py isort: format codebase 2023-08-22 18:32:22 +00:00
diffmanifests.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00
download.py subcmds: Use repo logger 2023-09-14 17:13:37 +00:00
forall.py subcmds: Use repo logger 2023-09-14 17:13:37 +00:00
grep.py subcmds: Use repo logger 2023-09-14 17:13:37 +00:00
help.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00
info.py info: Handle undefined mergeBranch 2023-11-20 19:22:53 +00:00
init.py repo: Use the worktree when checking the repo rev. 2023-11-13 18:21:31 +00:00
list.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00
manifest.py Update logger.warn to logger.warning 2023-10-13 19:34:26 +00:00
overview.py Format codebase with black and check formatting in CQ 2023-03-22 17:46:28 +00:00
prune.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00
rebase.py Update logger.warn to logger.warning 2023-10-13 19:34:26 +00:00
selfupdate.py subcmds: Use repo logger 2023-09-14 17:13:37 +00:00
smartsync.py Format codebase with black and check formatting in CQ 2023-03-22 17:46:28 +00:00
stage.py subcmds: Use repo logger 2023-09-14 17:13:37 +00:00
start.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00
status.py isort: format codebase 2023-08-22 18:32:22 +00:00
sync.py sync: Introduce git checkout levels 2024-02-27 17:28:33 +00:00
upload.py Update logger.warn to logger.warning 2023-10-13 19:34:26 +00:00
version.py cleanup: Update codebase to expect Python 3.6 2023-10-31 16:03:54 +00:00