mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-17 08:14:42 +04:00
Fix patch applying when apply.whitespace=error
This commit is contained in:
parent
ec102a842a
commit
d5e2af7de5
2 changed files with 14 additions and 3 deletions
|
|
@ -45,7 +45,10 @@ def staged_files_only(cmd_runner):
|
||||||
finally:
|
finally:
|
||||||
# Try to apply the patch we saved
|
# Try to apply the patch we saved
|
||||||
try:
|
try:
|
||||||
cmd_runner.run(('git', 'apply', patch_filename), encoding=None)
|
cmd_runner.run(
|
||||||
|
('git', 'apply', '--whitespace=nowarn', patch_filename),
|
||||||
|
encoding=None,
|
||||||
|
)
|
||||||
except CalledProcessError:
|
except CalledProcessError:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
'Stashed changes conflicted with hook auto-fixes... '
|
'Stashed changes conflicted with hook auto-fixes... '
|
||||||
|
|
@ -55,7 +58,10 @@ def staged_files_only(cmd_runner):
|
||||||
# by hooks.
|
# by hooks.
|
||||||
# Roll back the changes made by hooks.
|
# Roll back the changes made by hooks.
|
||||||
cmd_runner.run(['git', 'checkout', '--', '.'])
|
cmd_runner.run(['git', 'checkout', '--', '.'])
|
||||||
cmd_runner.run(('git', 'apply', patch_filename), encoding=None)
|
cmd_runner.run(
|
||||||
|
('git', 'apply', patch_filename, '--whitespace=nowarn'),
|
||||||
|
encoding=None,
|
||||||
|
)
|
||||||
logger.info('Restored changes from {}.'.format(patch_filename))
|
logger.info('Restored changes from {}.'.format(patch_filename))
|
||||||
else:
|
else:
|
||||||
# There weren't any staged files so we don't need to do anything
|
# There weren't any staged files so we don't need to do anything
|
||||||
|
|
|
||||||
|
|
@ -340,7 +340,7 @@ bool_product = tuple(itertools.product((True, False), repeat=2))
|
||||||
def test_crlf(in_git_dir, cmd_runner, crlf_before, crlf_after, autocrlf):
|
def test_crlf(in_git_dir, cmd_runner, crlf_before, crlf_after, autocrlf):
|
||||||
cmd_output('git', 'config', '--local', 'core.autocrlf', autocrlf)
|
cmd_output('git', 'config', '--local', 'core.autocrlf', autocrlf)
|
||||||
|
|
||||||
before, after = b'1\n2\n', b'3\n4\n'
|
before, after = b'1\n2\n', b'3\n4\n\n'
|
||||||
before = before.replace(b'\n', b'\r\n') if crlf_before else before
|
before = before.replace(b'\n', b'\r\n') if crlf_before else before
|
||||||
after = after.replace(b'\n', b'\r\n') if crlf_after else after
|
after = after.replace(b'\n', b'\r\n') if crlf_after else after
|
||||||
|
|
||||||
|
|
@ -349,3 +349,8 @@ def test_crlf(in_git_dir, cmd_runner, crlf_before, crlf_after, autocrlf):
|
||||||
_write(after)
|
_write(after)
|
||||||
with staged_files_only(cmd_runner):
|
with staged_files_only(cmd_runner):
|
||||||
assert_no_diff()
|
assert_no_diff()
|
||||||
|
|
||||||
|
|
||||||
|
def test_whitespace_errors(in_git_dir, cmd_runner):
|
||||||
|
cmd_output('git', 'config', '--local', 'apply.whitespace', 'error')
|
||||||
|
test_crlf(in_git_dir, cmd_runner, True, True, 'true')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue