Run git diff with --no-ext-diff

This commit is contained in:
Anthony Sottile 2017-06-09 08:34:04 -07:00
parent 844c839067
commit 321210d332
3 changed files with 19 additions and 10 deletions

View file

@ -32,7 +32,8 @@ def _hook_msg_start(hook, verbose):
def get_changed_files(new, old): def get_changed_files(new, old):
return cmd_output( return cmd_output(
'git', 'diff', '--name-only', '{}...{}'.format(old, new), 'git', 'diff', '--no-ext-diff', '--name-only',
'{}...{}'.format(old, new),
)[1].splitlines() )[1].splitlines()
@ -85,12 +86,16 @@ def _run_single_hook(hook, repo, args, skips, cols):
)) ))
sys.stdout.flush() sys.stdout.flush()
diff_before = cmd_output('git', 'diff', retcode=None, encoding=None) diff_before = cmd_output(
'git', 'diff', '--no-ext-diff', retcode=None, encoding=None,
)
retcode, stdout, stderr = repo.run_hook( retcode, stdout, stderr = repo.run_hook(
hook, hook,
tuple(filenames) if hook['pass_filenames'] else (), tuple(filenames) if hook['pass_filenames'] else (),
) )
diff_after = cmd_output('git', 'diff', retcode=None, encoding=None) diff_after = cmd_output(
'git', 'diff', '--no-ext-diff', retcode=None, encoding=None,
)
file_modifications = diff_before != diff_after file_modifications = diff_before != diff_after
@ -159,10 +164,10 @@ def _run_hooks(repo_hooks, args, environ):
if ( if (
retval and retval and
args.show_diff_on_failure and args.show_diff_on_failure and
subprocess.call(('git', 'diff', '--quiet')) != 0 subprocess.call(('git', 'diff', '--quiet', '--no-ext-diff')) != 0
): ):
print('All changes made by hooks:') print('All changes made by hooks:')
subprocess.call(('git', 'diff')) subprocess.call(('git', 'diff', '--no-ext-diff'))
return retval return retval
@ -179,7 +184,10 @@ def _has_unmerged_paths(runner):
def _has_unstaged_config(runner): def _has_unstaged_config(runner):
retcode, _, _ = runner.cmd_runner.run( retcode, _, _ = runner.cmd_runner.run(
('git', 'diff', '--exit-code', runner.config_file_path), (
'git', 'diff', '--no-ext-diff', '--exit-code',
runner.config_file_path,
),
retcode=None, retcode=None,
) )
# be explicit, other git errors don't mean it has an unstaged config. # be explicit, other git errors don't mean it has an unstaged config.

View file

@ -68,7 +68,8 @@ def get_conflicted_files():
# this will also include the conflicted files # this will also include the conflicted files
tree_hash = cmd_output('git', 'write-tree')[1].strip() tree_hash = cmd_output('git', 'write-tree')[1].strip()
merge_diff_filenames = cmd_output( merge_diff_filenames = cmd_output(
'git', 'diff', '-m', tree_hash, 'HEAD', 'MERGE_HEAD', '--name-only', 'git', 'diff', '--no-ext-diff',
'-m', tree_hash, 'HEAD', 'MERGE_HEAD', '--name-only',
)[1].splitlines() )[1].splitlines()
return set(merge_conflict_filenames) | set(merge_diff_filenames) return set(merge_conflict_filenames) | set(merge_diff_filenames)
@ -76,7 +77,7 @@ def get_conflicted_files():
@memoize_by_cwd @memoize_by_cwd
def get_staged_files(): def get_staged_files():
return cmd_output( return cmd_output(
'git', 'diff', '--staged', '--name-only', 'git', 'diff', '--staged', '--name-only', '--no-ext-diff',
# Everything except for D # Everything except for D
'--diff-filter=ACMRTUXB' '--diff-filter=ACMRTUXB'
)[1].splitlines() )[1].splitlines()

View file

@ -21,10 +21,10 @@ def staged_files_only(cmd_runner):
""" """
# Determine if there are unstaged files # Determine if there are unstaged files
retcode, diff_stdout_binary, _ = cmd_runner.run( retcode, diff_stdout_binary, _ = cmd_runner.run(
[ (
'git', 'diff', '--ignore-submodules', '--binary', '--exit-code', 'git', 'diff', '--ignore-submodules', '--binary', '--exit-code',
'--no-color', '--no-ext-diff', '--no-color', '--no-ext-diff',
], ),
retcode=None, retcode=None,
encoding=None, encoding=None,
) )