From 8a1c47a2528419e41aadfcf8135926d68f7ffbbb Mon Sep 17 00:00:00 2001 From: anthony sottile Date: Tue, 21 Jul 2026 16:34:57 -0400 Subject: [PATCH] avoid duplicate files in --all-files during conflict --- pre_commit/git.py | 2 +- tests/git_test.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pre_commit/git.py b/pre_commit/git.py index ec1928f37..3d3f58016 100644 --- a/pre_commit/git.py +++ b/pre_commit/git.py @@ -152,7 +152,7 @@ def intent_to_add_files() -> list[str]: def get_all_files() -> list[str]: - return zsplit(cmd_output('git', 'ls-files', '-z')[1]) + return zsplit(cmd_output('git', 'ls-files', '-z', '--deduplicate')[1]) def get_changed_files(old: str, new: str) -> list[str]: diff --git a/tests/git_test.py b/tests/git_test.py index 02b6ce3ae..763aa0de5 100644 --- a/tests/git_test.py +++ b/tests/git_test.py @@ -225,6 +225,17 @@ def test_all_files_non_ascii(non_ascii_repo): assert ret == ['интервью'] +def test_all_files_merge_conflict(in_merge_conflict): + ret = git.get_all_files() + assert sorted(ret) == sorted([ + '.pre-commit-config.yaml', + 'bar_only_file', + 'conflict_file', + 'foo_only_file', + 'placeholder', + ]) + + def test_staged_files_non_ascii(non_ascii_repo): non_ascii_repo.join('интервью').write('hi') cmd_output('git', 'add', '.')