mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
project: unify StartBranch flows behind git-update-ref
We're using this for git worktrees because it handles the .git file format, but it should work for all flows. Unify to simplify. This also fixes the worktree logic which duplicated .git/config settings. Change-Id: Ie3af2e206710859dccfc376b3593f415d6830738 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/256034 Tested-by: Mike Frysinger <vapier@google.com> Reviewed-by: Jonathan Nieder <jrn@google.com>
This commit is contained in:
parent
f241f8c094
commit
746e7f664e
18
project.py
18
project.py
@ -1994,19 +1994,11 @@ class Project(object):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
head = None
|
head = None
|
||||||
if revid and head and revid == head:
|
if revid and head and revid == head:
|
||||||
if self.use_git_worktrees:
|
ref = R_HEADS + name
|
||||||
self.work_git.update_ref(HEAD, revid)
|
self.work_git.update_ref(ref, revid)
|
||||||
branch.Save()
|
self.work_git.symbolic_ref(HEAD, ref)
|
||||||
else:
|
branch.Save()
|
||||||
ref = os.path.join(self.gitdir, R_HEADS + name)
|
return True
|
||||||
try:
|
|
||||||
os.makedirs(os.path.dirname(ref))
|
|
||||||
except OSError:
|
|
||||||
pass
|
|
||||||
_lwrite(ref, '%s\n' % revid)
|
|
||||||
_lwrite(self.GetHeadPath(), 'ref: %s%s\n' % (R_HEADS, name))
|
|
||||||
branch.Save()
|
|
||||||
return True
|
|
||||||
|
|
||||||
if GitCommand(self,
|
if GitCommand(self,
|
||||||
['checkout', '-b', branch.name, revid],
|
['checkout', '-b', branch.name, revid],
|
||||||
|
Loading…
Reference in New Issue
Block a user