mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
repo download: add --revert option
BZ: 4779 Allows to revert a gerrit patch This patch is necessary for the on-demand creation of engineering builds using buildbot You can now use: repo download [--revert|-r project changeid/patchnumber This is useful to automate reverting of a patch in the context of build automation, and regression bisection Change-Id: I3985e80e4b2a230f83526191ea1379765a54bdcf Signed-off-by: Erwan Mahe <erwan.mahe@intel.com> Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
This commit is contained in:
parent
e5a2122e64
commit
a94f162b9f
@ -1645,6 +1645,15 @@ class Project(object):
|
||||
if self._allrefs:
|
||||
raise GitError('%s cherry-pick %s ' % (self.name, rev))
|
||||
|
||||
def _Revert(self, rev, quiet=False):
|
||||
cmd = ['revert']
|
||||
cmd.append('--no-edit')
|
||||
cmd.append(rev)
|
||||
cmd.append('--')
|
||||
if GitCommand(self, cmd).Wait() != 0:
|
||||
if self._allrefs:
|
||||
raise GitError('%s revert %s ' % (self.name, rev))
|
||||
|
||||
def _ResetHard(self, rev, quiet=True):
|
||||
cmd = ['reset', '--hard']
|
||||
if quiet:
|
||||
|
@ -36,6 +36,9 @@ makes it available in your project's local working directory.
|
||||
p.add_option('-c','--cherry-pick',
|
||||
dest='cherrypick', action='store_true',
|
||||
help="cherry-pick instead of checkout")
|
||||
p.add_option('-r','--revert',
|
||||
dest='revert', action='store_true',
|
||||
help="revert instead of checkout")
|
||||
|
||||
def _ParseChangeIds(self, args):
|
||||
if not args:
|
||||
@ -68,7 +71,7 @@ makes it available in your project's local working directory.
|
||||
% (project.name, change_id, ps_id)
|
||||
sys.exit(1)
|
||||
|
||||
if not dl.commits:
|
||||
if not opt.revert and not dl.commits:
|
||||
print >>sys.stderr, \
|
||||
'[%s] change %d/%d has already been merged' \
|
||||
% (project.name, change_id, ps_id)
|
||||
@ -82,5 +85,7 @@ makes it available in your project's local working directory.
|
||||
print >>sys.stderr, ' %s' % (c)
|
||||
if opt.cherrypick:
|
||||
project._CherryPick(dl.commit)
|
||||
elif opt.revert:
|
||||
project._Revert(dl.commit)
|
||||
else:
|
||||
project._Checkout(dl.commit)
|
||||
|
Loading…
Reference in New Issue
Block a user