Commit 49e3d807 authored by maruel@chromium.org's avatar maruel@chromium.org

Fix stats output to be always the same and coherent with what is committed.

git cl dcommit statistics were not using --find-copies-harder, scaring the user
off.

R=cmp@chromium.org
BUG=
TEST=


Review URL: https://chromiumcodereview.appspot.com/10795003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@147343 0039d316-1c4b-4281-b951-d872f2087c98
parent 6fd50f51
......@@ -135,6 +135,19 @@ def MatchSvnGlob(url, base_url, glob_spec, allow_wildcards):
return None
def print_stats(args):
"""Prints statistics about the change to the user."""
# --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).
env = os.environ.copy()
if 'GIT_EXTERNAL_DIFF' in env:
del env['GIT_EXTERNAL_DIFF']
return subprocess2.call(
['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder'] + args,
env=env)
class Settings(object):
def __init__(self):
self.default_server = None
......@@ -1126,16 +1139,7 @@ def CMDupload(parser, args):
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).
env = os.environ.copy()
if 'GIT_EXTERNAL_DIFF' in env:
del env['GIT_EXTERNAL_DIFF']
subprocess2.call(
['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder'] + args,
env=env)
print_stats(args)
if settings.GetIsGerrit():
return GerritUpload(options, args, cl)
return RietveldUpload(options, args, cl)
......@@ -1265,7 +1269,7 @@ def SendUpstream(parser, args, cmd):
branches = [base_branch, cl.GetBranchRef()]
if not options.force:
subprocess2.call(['git', 'diff', '--stat'] + branches)
print_stats(branches)
ask_for_data('About to commit; enter to confirm.')
# We want to squash all this branch's commits into one commit with the proper
......
......@@ -192,8 +192,8 @@ class TestGitCl(TestCase):
@classmethod
def _dcommit_calls_3(cls):
return [
((['git', 'diff', '--stat', 'refs/remotes/origin/master',
'refs/heads/working'],),
((['git', 'diff', '--no-ext-diff', '--stat', '--find-copies-harder',
'refs/remotes/origin/master', 'refs/heads/working'],),
(' PRESUBMIT.py | 2 +-\n'
' 1 files changed, 1 insertions(+), 1 deletions(-)\n')),
(('About to commit; enter to confirm.',), None),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment