From 78964472adc5c92e0aad7bf513c50df5331d9d66 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sun, 22 Mar 2020 13:54:55 -0400 Subject: [PATCH] download: add a --branch option This allows people to quickly create new branches when pulling down changes rather than having to juggle the git calls themselves. Bug: https://crbug.com/gerrit/11609 Change-Id: Ie6a4d05e9f4e9347fe7f7119c768e6446563ae65 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/259855 Reviewed-by: David Pursehouse Tested-by: Mike Frysinger --- subcmds/download.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/subcmds/download.py b/subcmds/download.py index badd9ab3..723124fd 100644 --- a/subcmds/download.py +++ b/subcmds/download.py @@ -37,6 +37,8 @@ If no project is specified try to use current directory as a project. """ def _Options(self, p): + p.add_option('-b', '--branch', + help='create a new branch first') p.add_option('-c', '--cherry-pick', dest='cherrypick', action='store_true', help="cherry-pick instead of checkout") @@ -119,6 +121,11 @@ If no project is specified try to use current directory as a project. else: mode = 'checkout' + # We'll combine the branch+checkout operation, but all the rest need a + # dedicated branch start. + if opt.branch and mode != 'checkout': + project.StartBranch(opt.branch) + try: if opt.cherrypick: project._CherryPick(dl.commit, ffonly=opt.ffonly, @@ -128,7 +135,10 @@ If no project is specified try to use current directory as a project. elif opt.ffonly: project._FastForward(dl.commit, ffonly=True) else: - project._Checkout(dl.commit) + if opt.branch: + project.StartBranch(opt.branch, revision=dl.commit) + else: + project._Checkout(dl.commit) except GitError: print('[%s] Could not complete the %s of %s'