Index: git_cl.py
|
diff --git a/git_cl.py b/git_cl.py
|
index f99f5e99a269bcaafa9b1bae48a65941e9fdea5f..dad4186b4c742ade247b863b8bf058de029c5322 100755
|
--- a/git_cl.py
|
+++ b/git_cl.py
|
@@ -554,6 +554,11 @@ class Settings(object):
|
def GetBugPrefix(self):
|
return self._GetRietveldConfig('bug-prefix', error_ok=True)
|
|
+ def GetIsSkipDependencyUpload(self, branch_name):
|
+ """Returns true if specified branch should skip dep uploads."""
|
+ return self._GetBranchConfig(branch_name, 'skip-deps-uploads',
|
+ error_ok=True)
|
+
|
def GetRunPostUploadHook(self):
|
run_post_upload_hook = self._GetRietveldConfig(
|
'run-post-upload-hook', error_ok=True)
|
@@ -605,6 +610,9 @@ class Settings(object):
|
def _GetRietveldConfig(self, param, **kwargs):
|
return self._GetConfig('rietveld.' + param, **kwargs)
|
|
+ def _GetBranchConfig(self, branch_name, param, **kwargs):
|
+ return self._GetConfig('branch.' + branch_name + '.' + param, **kwargs)
|
+
|
def _GetConfig(self, param, **kwargs):
|
self.LazyUpdateIfNeeded()
|
return RunGit(['config', param], **kwargs).strip()
|
@@ -2191,21 +2199,27 @@ def RietveldUpload(options, args, cl, change):
|
if remote is '.':
|
# A local branch is being tracked.
|
local_branch = ShortBranchName(upstream_branch)
|
- auth_config = auth.extract_auth_config_from_options(options)
|
- branch_cl = Changelist(branchref=local_branch, auth_config=auth_config)
|
- branch_cl_issue_url = branch_cl.GetIssueURL()
|
- branch_cl_issue = branch_cl.GetIssue()
|
- branch_cl_patchset = branch_cl.GetPatchset()
|
- if branch_cl_issue_url and branch_cl_issue and branch_cl_patchset:
|
- upload_args.extend(
|
- ['--depends_on_patchset', '%s:%s' % (
|
- branch_cl_issue, branch_cl_patchset)])
|
+ if settings.GetIsSkipDependencyUpload(local_branch):
|
print
|
- print ('The current branch (%s) is tracking a local branch (%s) with '
|
- 'an associated CL.') % (cl.GetBranch(), local_branch)
|
- print 'Adding %s/#ps%s as a dependency patchset.' % (
|
- branch_cl_issue_url, branch_cl_patchset)
|
+ print ('Skipping dependency patchset upload because git config '
|
+ 'branch.%s.skip-deps-uploads is set to True.' % local_branch)
|
print
|
+ else:
|
+ auth_config = auth.extract_auth_config_from_options(options)
|
+ branch_cl = Changelist(branchref=local_branch, auth_config=auth_config)
|
+ branch_cl_issue_url = branch_cl.GetIssueURL()
|
+ branch_cl_issue = branch_cl.GetIssue()
|
+ branch_cl_patchset = branch_cl.GetPatchset()
|
+ if branch_cl_issue_url and branch_cl_issue and branch_cl_patchset:
|
+ upload_args.extend(
|
+ ['--depends_on_patchset', '%s:%s' % (
|
+ branch_cl_issue, branch_cl_patchset)])
|
+ print
|
+ print ('The current branch (%s) is tracking a local branch (%s) with '
|
+ 'an associated CL.') % (cl.GetBranch(), local_branch)
|
+ print 'Adding %s/#ps%s as a dependency patchset.' % (
|
+ branch_cl_issue_url, branch_cl_patchset)
|
+ print
|
|
project = settings.GetProject()
|
if project:
|
@@ -2256,7 +2270,14 @@ def cleanup_list(l):
|
|
@subcommand.usage('[args to "git diff"]')
|
def CMDupload(parser, args):
|
- """Uploads the current changelist to codereview."""
|
+ """Uploads the current changelist to codereview.
|
+
|
+ Can skip dependency patchset uploads for a branch by running:
|
+ git config branch.branch_name.skip-deps-uploads True
|
+ To unset run:
|
+ git config --unset branch.branch_name.skip-deps-uploads
|
+ Can also set the above globally by using the --global flag.
|
+ """
|
parser.add_option('--bypass-hooks', action='store_true', dest='bypass_hooks',
|
help='bypass upload presubmit hook')
|
parser.add_option('--bypass-watchlists', action='store_true',
|
|