From e5a2122e6429b5eee861807e7050eb02045a7d4f Mon Sep 17 00:00:00 2001 From: Pierre Tardy Date: Thu, 24 Mar 2011 16:28:18 +0100 Subject: repo download: add --cherry-pick option default option uses git checkout, and thus overwrite the previous checkouts. this is a problem for automated builds of several changesets in the same project for daily builds of pending submission You can now use: repo download [--cherry-pick|-c] project changeid/patchnumber This will parse the manifest, cd to the corresponding project download the changes to FETCH_HEAD and cherry-pick the result. This is useful to automate cherry-picking of a patch in the context of build automation, and commit gating (e.g. buildbot) Change-Id: Ib638afd87677f1be197afb7b0f73c70fb98909fe Signed-off-by: Pierre Tardy --- subcmds/download.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'subcmds/download.py') diff --git a/subcmds/download.py b/subcmds/download.py index 61eadd54..79d0192d 100644 --- a/subcmds/download.py +++ b/subcmds/download.py @@ -33,7 +33,9 @@ makes it available in your project's local working directory. """ def _Options(self, p): - pass + p.add_option('-c','--cherry-pick', + dest='cherrypick', action='store_true', + help="cherry-pick instead of checkout") def _ParseChangeIds(self, args): if not args: @@ -78,4 +80,7 @@ makes it available in your project's local working directory. % (project.name, change_id, ps_id, len(dl.commits)) for c in dl.commits: print >>sys.stderr, ' %s' % (c) - project._Checkout(dl.commit) + if opt.cherrypick: + project._CherryPick(dl.commit) + else: + project._Checkout(dl.commit) -- cgit v1.2.3-54-g00ecf