From ee37d9769800c5482ee0a70b3af41b28a39f4c53 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 13 Feb 2024 06:42:02 +0100 Subject: Merging upstream version 3.6.1. Signed-off-by: Daniel Baumann --- pre_commit/main.py | 3 +++ pre_commit/staged_files_only.py | 5 +++++ 2 files changed, 8 insertions(+) (limited to 'pre_commit') diff --git a/pre_commit/main.py b/pre_commit/main.py index 18c978a..559c927 100644 --- a/pre_commit/main.py +++ b/pre_commit/main.py @@ -37,6 +37,9 @@ logger = logging.getLogger('pre_commit') # pyvenv os.environ.pop('__PYVENV_LAUNCHER__', None) +# https://github.com/getsentry/snuba/pull/5388 +os.environ.pop('PYTHONEXECUTABLE', None) + COMMANDS_NO_GIT = { 'clean', 'gc', 'init-templatedir', 'sample-config', 'validate-config', 'validate-manifest', diff --git a/pre_commit/staged_files_only.py b/pre_commit/staged_files_only.py index fd28e1c..e1f81ba 100644 --- a/pre_commit/staged_files_only.py +++ b/pre_commit/staged_files_only.py @@ -59,6 +59,11 @@ def _unstaged_changes_cleared(patch_dir: str) -> Generator[None, None, None]: # There weren't any staged files so we don't need to do anything # special yield + elif retcode == 1 and not diff_stdout.strip(): + # due to behaviour (probably a bug?) in git with crlf endings and + # autocrlf set to either `true` or `input` sometimes git will refuse + # to show a crlf-only diff to us :( + yield elif retcode == 1 and diff_stdout.strip(): patch_filename = f'patch{int(time.time())}-{os.getpid()}' patch_filename = os.path.join(patch_dir, patch_filename) -- cgit v1.2.3