summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Harring <ferringb@chromium.org>2012-07-28 15:37:04 -0700
committerBrian Harring <ferringb@google.com>2012-07-28 15:44:05 -0700
commit435370c6f0e202378ae233cf1088e499ba07e971 (patch)
tree17ef58db736d091ad62b54db0c7169b964ccb95e
parente8f75fa3687bfe894a4fa8e59881b7d9170d8a41 (diff)
downloadgit-repo-435370c6f0e202378ae233cf1088e499ba07e971.tar.gz
upload: add --draft option.
Change-Id: I6967ff2f8163cd4116027b3f15ddb36875942af4
-rw-r--r--project.py16
-rw-r--r--subcmds/upload.py5
2 files changed, 16 insertions, 5 deletions
diff --git a/project.py b/project.py
index 66a123d2..68c1c687 100644
--- a/project.py
+++ b/project.py
@@ -176,10 +176,11 @@ class ReviewableBranch(object):
176 R_HEADS + self.name, 176 R_HEADS + self.name,
177 '--') 177 '--')
178 178
179 def UploadForReview(self, people, auto_topic=False): 179 def UploadForReview(self, people, auto_topic=False, draft=False):
180 self.project.UploadForReview(self.name, 180 self.project.UploadForReview(self.name,
181 people, 181 people,
182 auto_topic=auto_topic) 182 auto_topic=auto_topic,
183 draft=draft)
183 184
184 def GetPublishedRefs(self): 185 def GetPublishedRefs(self):
185 refs = {} 186 refs = {}
@@ -881,7 +882,8 @@ class Project(object):
881 882
882 def UploadForReview(self, branch=None, 883 def UploadForReview(self, branch=None,
883 people=([],[]), 884 people=([],[]),
884 auto_topic=False): 885 auto_topic=False,
886 draft=False):
885 """Uploads the named branch for code review. 887 """Uploads the named branch for code review.
886 """ 888 """
887 if branch is None: 889 if branch is None:
@@ -920,7 +922,13 @@ class Project(object):
920 922
921 if dest_branch.startswith(R_HEADS): 923 if dest_branch.startswith(R_HEADS):
922 dest_branch = dest_branch[len(R_HEADS):] 924 dest_branch = dest_branch[len(R_HEADS):]
923 ref_spec = '%s:refs/for/%s' % (R_HEADS + branch.name, dest_branch) 925
926 upload_type = 'for'
927 if draft:
928 upload_type = 'drafts'
929
930 ref_spec = '%s:refs/%s/%s' % (R_HEADS + branch.name, upload_type,
931 dest_branch)
924 if auto_topic: 932 if auto_topic:
925 ref_spec = ref_spec + '/' + branch.name 933 ref_spec = ref_spec + '/' + branch.name
926 cmd.append(ref_spec) 934 cmd.append(ref_spec)
diff --git a/subcmds/upload.py b/subcmds/upload.py
index 69efa107..c9312973 100644
--- a/subcmds/upload.py
+++ b/subcmds/upload.py
@@ -134,6 +134,9 @@ Gerrit Code Review: http://code.google.com/p/gerrit/
134 p.add_option('--cbr', '--current-branch', 134 p.add_option('--cbr', '--current-branch',
135 dest='current_branch', action='store_true', 135 dest='current_branch', action='store_true',
136 help='Upload current git branch.') 136 help='Upload current git branch.')
137 p.add_option('-d', '--draft',
138 action='store_true', dest='draft', default=False,
139 help='If specified, upload as a draft.')
137 140
138 # Options relating to upload hook. Note that verify and no-verify are NOT 141 # Options relating to upload hook. Note that verify and no-verify are NOT
139 # opposites of each other, which is why they store to different locations. 142 # opposites of each other, which is why they store to different locations.
@@ -324,7 +327,7 @@ Gerrit Code Review: http://code.google.com/p/gerrit/
324 key = 'review.%s.uploadtopic' % branch.project.remote.review 327 key = 'review.%s.uploadtopic' % branch.project.remote.review
325 opt.auto_topic = branch.project.config.GetBoolean(key) 328 opt.auto_topic = branch.project.config.GetBoolean(key)
326 329
327 branch.UploadForReview(people, auto_topic=opt.auto_topic) 330 branch.UploadForReview(people, auto_topic=opt.auto_topic, draft=opt.draft)
328 branch.uploaded = True 331 branch.uploaded = True
329 except UploadError, e: 332 except UploadError, e:
330 branch.error = e 333 branch.error = e