Skip to content

Commit

Permalink
Merge pull request #571 from pre-commit/plumbing
Browse files Browse the repository at this point in the history
Use more git plumbing commands in staged-files-only
  • Loading branch information
asottile committed Aug 1, 2017
2 parents 972106c + ac0e1a6 commit ce7481f
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions pre_commit/staged_files_only.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@ def staged_files_only(cmd_runner):
cmd_runner - PrefixedCommandRunner
"""
# Determine if there are unstaged files
tree = cmd_runner.run(('git', 'write-tree'))[1].strip()
retcode, diff_stdout_binary, _ = cmd_runner.run(
(
'git', 'diff', '--ignore-submodules', '--binary', '--exit-code',
'--no-color', '--no-ext-diff',
'git', 'diff-index', '--ignore-submodules', '--binary',
'--exit-code', '--no-color', '--no-ext-diff', tree, '--',
),
retcode=None,
encoding=None,
Expand All @@ -39,7 +40,7 @@ def staged_files_only(cmd_runner):
patch_file.write(diff_stdout_binary)

# Clear the working directory of unstaged changes
cmd_runner.run(['git', 'checkout', '--', '.'])
cmd_runner.run(('git', 'checkout', '--', '.'))
try:
yield
finally:
Expand All @@ -57,7 +58,7 @@ def staged_files_only(cmd_runner):
# We failed to apply the patch, presumably due to fixes 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, '--whitespace=nowarn'),
encoding=None,
Expand Down

0 comments on commit ce7481f

Please sign in to comment.