| Index: git_cl.py
|
| diff --git a/git_cl.py b/git_cl.py
|
| index 9ba9062692ab63168ec0273bf8fa3ea91bf76fd7..c24fdb6afc47926c51765b472da152e3b0018de4 100755
|
| --- a/git_cl.py
|
| +++ b/git_cl.py
|
| @@ -550,7 +550,7 @@ or verify this branch is set up to track another (via the --track argument to
|
| self.SetWatchers(watchlist.GetWatchersForPaths(files))
|
|
|
| try:
|
| - output = presubmit_support.DoPresubmitChecks(change, committing,
|
| + return presubmit_support.DoPresubmitChecks(change, committing,
|
| verbose=verbose, output_stream=sys.stdout, input_stream=sys.stdin,
|
| default_presubmit=None, may_prompt=may_prompt,
|
| rietveld_obj=self.RpcServer())
|
| @@ -559,13 +559,6 @@ or verify this branch is set up to track another (via the --track argument to
|
| ('%s\nMaybe your depot_tools is out of date?\n'
|
| 'If all fails, contact maruel@') % e)
|
|
|
| - # TODO(dpranke): We should propagate the error out instead of calling
|
| - # exit().
|
| - if not output.should_continue():
|
| - sys.exit(1)
|
| -
|
| - return output
|
| -
|
| def CloseIssue(self):
|
| """Updates the description and closes the issue."""
|
| issue = int(self.GetIssue())
|
| @@ -909,15 +902,16 @@ def CMDupload(parser, args):
|
| base_branch = cl.GetUpstreamBranch()
|
| args = [base_branch + "..."]
|
|
|
| - if not options.bypass_hooks and not options.force:
|
| + if not options.bypass_hooks:
|
| hook_results = cl.RunHook(committing=False, upstream_branch=base_branch,
|
| - may_prompt=True,
|
| + may_prompt=not options.force,
|
| verbose=options.verbose,
|
| author=None)
|
| + if not hook_results.should_continue():
|
| + return 1
|
| if not options.reviewers and hook_results.reviewers:
|
| options.reviewers = hook_results.reviewers
|
|
|
| -
|
| # --no-ext-diff is broken in some versions of Git, so try to work around
|
| # this by overriding the environment (but there is still a problem if the
|
| # git config key "diff.external" is used).
|
| @@ -1068,24 +1062,29 @@ def SendUpstream(parser, args, cmd):
|
| 'before attempting to %s.' % (base_branch, cmd))
|
| return 1
|
|
|
| - if not options.bypass_hooks and not options.force:
|
| + if not options.bypass_hooks:
|
| author = None
|
| if options.contributor:
|
| author = re.search(r'\<(.*)\>', options.contributor).group(1)
|
| - cl.RunHook(committing=True, upstream_branch=base_branch,
|
| - may_prompt=True, verbose=options.verbose,
|
| - author=author)
|
| + hook_results = cl.RunHook(
|
| + committing=True,
|
| + upstream_branch=base_branch,
|
| + may_prompt=not options.force,
|
| + verbose=options.verbose,
|
| + author=author)
|
| + if not hook_results.should_continue():
|
| + return 1
|
|
|
| if cmd == 'dcommit':
|
| # Check the tree status if the tree status URL is set.
|
| status = GetTreeStatus()
|
| if 'closed' == status:
|
| - print ('The tree is closed. Please wait for it to reopen. Use '
|
| - '"git cl dcommit -f" to commit on a closed tree.')
|
| + print('The tree is closed. Please wait for it to reopen. Use '
|
| + '"git cl dcommit --bypass-hooks" to commit on a closed tree.')
|
| return 1
|
| elif 'unknown' == status:
|
| - print ('Unable to determine tree status. Please verify manually and '
|
| - 'use "git cl dcommit -f" to commit on a closed tree.')
|
| + print('Unable to determine tree status. Please verify manually and '
|
| + 'use "git cl dcommit --bypass-hooks" to commit on a closed tree.')
|
| else:
|
| breakpad.SendStack(
|
| 'GitClHooksBypassedCommit',
|
|
|