mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
Run git diff with --no-ext-diff
This commit is contained in:
parent
844c839067
commit
321210d332
3 changed files with 19 additions and 10 deletions
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue