summaryrefslogtreecommitdiffstats
path: root/subcmds/diffmanifests.py
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2020-02-26 23:53:36 -0500
committerDavid Pursehouse <dpursehouse@collab.net>2020-02-29 07:22:08 +0000
commit21b7fbe14d9457400a90683a9bd3febe4b7f8840 (patch)
tree658712eafc8754a4b7e2382d299c8dd207baaf75 /subcmds/diffmanifests.py
parentb967f5c17a04d6a01c234427b3b5c9b49dff6ca5 (diff)
downloadgit-repo-21b7fbe14d9457400a90683a9bd3febe4b7f8840.tar.gz
project: fix m/ pseudo ref handling with git worktrees
Since most ref namespaces are shared among all worktrees, trying to set the pseudo m/<branch> in the common git repo ends up clobbering each other when using shared checkouts. For example, in CrOS: <project path="src/third_party/kernel/v3.8" name="chromiumos/third_party/kernel" revision="refs/heads/chromeos-3.8" /> <project path="src/third_party/kernel/v3.10" name="chromiumos/third_party/kernel" revision="refs/heads/chromeos-3.10" /> Trying to set m/master in chromiumos/third_party/kernel.git/ will keep clobbering the other. Instead, when using git worktrees, lets set the m/ pseudo ref to point into the refs/worktree/ namespace which is unique to each git worktree. So we have in the common dir: chromiumos/third_party/kernel.git/: refs/remotes/m/master: ref: refs/worktree/m/master And then in each worktree we point refs/worktree/m/master to the respective manifest revision expression. Now people can use the m/master in each git worktree and have it resolve to the right commit for that worktree. Bug: https://crbug.com/gerrit/12404 Change-Id: I78814bdd5dd67bb13218c4c6ccd64f8a15dd0a52 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/256952 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: David Pursehouse <dpursehouse@collab.net>
Diffstat (limited to 'subcmds/diffmanifests.py')
0 files changed, 0 insertions, 0 deletions