mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Detach branch even when already on the latest revision using sync -d
This patch fixes repo behaviour when running sync -d with unmodified topic branches. Prior to this patch sync -d would see the latest revision is already checked out, thus staying on the branch. Since "-d" means detach we should follow git's behaviour and actually detach from the branch in that case. Basic test case - after a fresh repo init + sync - * repo start --all testdetach * repo sync -d * repo status -> status shows active topic branch "testdetach", should show : nothing to commit (working directory clean) Change-Id: Ic1351e6b5721b76557a51ab09f9dd42c38a4b415
This commit is contained in:
parent
5e57234ec6
commit
7cf1b36bcd
11
project.py
11
project.py
@ -1044,12 +1044,15 @@ class Project(object):
|
||||
|
||||
if head == revid:
|
||||
# No changes; don't do anything further.
|
||||
# Except if the head needs to be detached
|
||||
#
|
||||
return
|
||||
if not syncbuf.detach_head:
|
||||
return
|
||||
else:
|
||||
lost = self._revlist(not_rev(revid), HEAD)
|
||||
if lost:
|
||||
syncbuf.info(self, "discarding %d commits", len(lost))
|
||||
|
||||
lost = self._revlist(not_rev(revid), HEAD)
|
||||
if lost:
|
||||
syncbuf.info(self, "discarding %d commits", len(lost))
|
||||
try:
|
||||
self._Checkout(revid, quiet=True)
|
||||
except GitError, e:
|
||||
|
Loading…
Reference in New Issue
Block a user