From 44ed39320c65dac9bb71a58d56d72f185472d5de Mon Sep 17 00:00:00 2001 From: Lena Wildervanck Date: Fri, 19 May 2023 01:32:06 +0200 Subject: [PATCH] Improve the fsmonitor detection code --- pre_commit/staged_files_only.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pre_commit/staged_files_only.py b/pre_commit/staged_files_only.py index 43580fb2..818f6ded 100644 --- a/pre_commit/staged_files_only.py +++ b/pre_commit/staged_files_only.py @@ -3,6 +3,7 @@ from __future__ import annotations import contextlib import logging import os.path +import sys import time from typing import Generator @@ -49,8 +50,15 @@ def _intent_to_add_cleared() -> Generator[None, None, None]: @contextlib.contextmanager def _unstaged_changes_cleared(patch_dir: str) -> Generator[None, None, None]: - if cmd_output('git', 'fsmonitor--daemon', 'status')[1].startswith('fsmonitor-daemon is watching'): - logger.warning('The fsmonitor-daemon is running; a bug in the fsmonitor-daemon sometimes causes data loss when run with pre-commit.') + if ( + (sys.platform == 'darwin' or sys.platform == 'win32') + and os.path.exists('./.git/fsmonitor--daemon.ipc') + and cmd_output('git', 'fsmonitor--daemon', 'status')[0] == 0 + ): + logger.warning( + "The fsmonitor daemon is running; " + "a bug in the fsmonitor daemon sometimes causes data loss " + "when running with pre-commit.") tree = cmd_output('git', 'write-tree')[1].strip() diff_cmd = (