diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-09-06 04:23:53 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2021-09-06 04:24:09 +0000 |
commit | 1968ada2d36e4508ef787e57f0e5f63214bcbad7 (patch) | |
tree | 69c01b5108b09faafa39e56ae48add8a2439f9db /pre_commit/git.py | |
parent | Releasing debian version 2.14.0-2. (diff) | |
download | pre-commit-1968ada2d36e4508ef787e57f0e5f63214bcbad7.tar.xz pre-commit-1968ada2d36e4508ef787e57f0e5f63214bcbad7.zip |
Merging upstream version 2.15.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | pre_commit/git.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/pre_commit/git.py b/pre_commit/git.py index 4bf2823..6264529 100644 --- a/pre_commit/git.py +++ b/pre_commit/git.py @@ -155,12 +155,15 @@ def get_all_files() -> List[str]: def get_changed_files(old: str, new: str) -> List[str]: - return zsplit( - cmd_output( - 'git', 'diff', '--name-only', '--no-ext-diff', '-z', - f'{old}...{new}', - )[1], - ) + diff_cmd = ('git', 'diff', '--name-only', '--no-ext-diff', '-z') + try: + _, out, _ = cmd_output(*diff_cmd, f'{old}...{new}') + except CalledProcessError: # pragma: no cover (new git) + # on newer git where old and new do not have a merge base git fails + # so we try a full diff (this is what old git did for us!) + _, out, _ = cmd_output(*diff_cmd, f'{old}..{new}') + + return zsplit(out) def head_rev(remote: str) -> str: |