diff --git a/project.py b/project.py index 06606fa6..86c9ef00 100644 --- a/project.py +++ b/project.py @@ -198,6 +198,7 @@ class ReviewableBranch(object): return self._base_exists def UploadForReview(self, people, + dryrun=False, auto_topic=False, hashtags=(), draft=False, @@ -207,8 +208,9 @@ class ReviewableBranch(object): dest_branch=None, validate_certs=True, push_options=None): - self.project.UploadForReview(self.name, - people, + self.project.UploadForReview(branch=self.name, + people=people, + dryrun=dryrun, auto_topic=auto_topic, hashtags=hashtags, draft=draft, @@ -1332,6 +1334,7 @@ class Project(object): def UploadForReview(self, branch=None, people=([], []), + dryrun=False, auto_topic=False, hashtags=(), draft=False, @@ -1369,6 +1372,8 @@ class Project(object): if url is None: raise UploadError('review not configured') cmd = ['push'] + if dryrun: + cmd.append('-n') if url.startswith('ssh://'): cmd.append('--receive-pack=gerrit receive-pack') diff --git a/subcmds/upload.py b/subcmds/upload.py index 633ddc81..6ef4955e 100644 --- a/subcmds/upload.py +++ b/subcmds/upload.py @@ -181,6 +181,9 @@ Gerrit Code Review: https://www.gerritcodereview.com/ type='string', action='store', dest='dest_branch', metavar='BRANCH', help='Submit for review on this target branch.') + p.add_option('-n', '--dry-run', + dest='dryrun', default=False, action='store_true', + help='Do everything except actually upload the CL.') p.add_option('--no-cert-checks', dest='validate_certs', action='store_false', default=True, help='Disable verifying ssl certs (unsafe).') @@ -423,6 +426,7 @@ Gerrit Code Review: https://www.gerritcodereview.com/ continue branch.UploadForReview(people, + dryrun=opt.dryrun, auto_topic=opt.auto_topic, hashtags=hashtags, draft=opt.draft,