mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Add repo start option to create the branch based off HEAD
This makes it way easier to recover from forgetting to run repo start before committing: just run `repo start -b new-branch`, instead of all that tedious mucking around with reflogs. Change-Id: I56d49dce5d027e28fbba0507ac10cd763ccfc36d Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/232712 Reviewed-by: Mike Frysinger <vapier@google.com> Reviewed-by: David Pursehouse <dpursehouse@collab.net> Tested-by: Mike Frysinger <vapier@google.com>
This commit is contained in:
parent
46702eddc7
commit
60fdc5cad1
@ -1697,7 +1697,7 @@ class Project(object):
|
|||||||
|
|
||||||
# Branch Management ##
|
# Branch Management ##
|
||||||
|
|
||||||
def StartBranch(self, name, branch_merge=''):
|
def StartBranch(self, name, branch_merge='', revision=None):
|
||||||
"""Create a new branch off the manifest's revision.
|
"""Create a new branch off the manifest's revision.
|
||||||
"""
|
"""
|
||||||
if not branch_merge:
|
if not branch_merge:
|
||||||
@ -1718,7 +1718,11 @@ class Project(object):
|
|||||||
branch.merge = branch_merge
|
branch.merge = branch_merge
|
||||||
if not branch.merge.startswith('refs/') and not ID_RE.match(branch_merge):
|
if not branch.merge.startswith('refs/') and not ID_RE.match(branch_merge):
|
||||||
branch.merge = R_HEADS + branch_merge
|
branch.merge = R_HEADS + branch_merge
|
||||||
revid = self.GetRevisionId(all_refs)
|
|
||||||
|
if revision is None:
|
||||||
|
revid = self.GetRevisionId(all_refs)
|
||||||
|
else:
|
||||||
|
revid = self.work_git.rev_parse(revision)
|
||||||
|
|
||||||
if head.startswith(R_HEADS):
|
if head.startswith(R_HEADS):
|
||||||
try:
|
try:
|
||||||
|
@ -40,6 +40,10 @@ revision specified in the manifest.
|
|||||||
p.add_option('--all',
|
p.add_option('--all',
|
||||||
dest='all', action='store_true',
|
dest='all', action='store_true',
|
||||||
help='begin branch in all projects')
|
help='begin branch in all projects')
|
||||||
|
p.add_option('-r', '--rev', '--revision', dest='revision',
|
||||||
|
help='point branch at this revision instead of upstream')
|
||||||
|
p.add_option('--head', dest='revision', action='store_const', const='HEAD',
|
||||||
|
help='abbreviation for --rev HEAD')
|
||||||
|
|
||||||
def ValidateOptions(self, opt, args):
|
def ValidateOptions(self, opt, args):
|
||||||
if not args:
|
if not args:
|
||||||
@ -108,7 +112,8 @@ revision specified in the manifest.
|
|||||||
else:
|
else:
|
||||||
branch_merge = self.manifest.default.revisionExpr
|
branch_merge = self.manifest.default.revisionExpr
|
||||||
|
|
||||||
if not project.StartBranch(nb, branch_merge=branch_merge):
|
if not project.StartBranch(
|
||||||
|
nb, branch_merge=branch_merge, revision=opt.revision):
|
||||||
err.append(project)
|
err.append(project)
|
||||||
pm.end()
|
pm.end()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user