Git с ExamDiff Pro запрашивает изменения файлов во время сравнения каталогов

Я использую ExamDiff Pro с git для Windows под Windows 10.

Когда я бегу git difftool --dir-diff <branch1> <branch2>, открывается экран сравнения каталогов EDP, показывающий разные файлы, но затем я начинаю получать всплывающие окна о том, что файлы изменились, предлагая мне провести повторное сравнение.

Я не знаю, связана ли проблема с моими настройками git (ниже), с ExamDiff или с Windows.

      [core]
    autocrlf = true
    fscache = true
    symlinks = false
    useBuiltinFSMonitor = true
    compression = 0

[diff]
    tool = edp
    guitool = edp

[difftool "edp"]
    path = "C:\\Program Files\\ExamDiff Pro\\ExamDiff.exe"
    cmd = "\"C:\\Program Files\\ExamDiff Pro\\ExamDiff.exe\" \"$LOCAL\" \"$REMOTE\" -nh -r2"
    trustExitCode = false

1 ответ

Я понял, что происходит.

Я использовал SysInternals Process Monitor, чтобы увидеть, какие процессы обращаются к файлам. Оказалось, что к файлам обращаются два процесса: Защитник Windows и (очевидно) ExamDiff.

Происходит следующее: как только git копирует файлы во временную папку, Защитник Windows начинает их сканирование в фоновом режиме.

Теперь и антивирус не должен изменять файлы, которые он сканирует, но, по-видимому, он это делает, изменяя расширенные атрибуты файлов:

      MsSense.exe,6168,SetEAFile,C:\Temp\git-difftool.a35220\right\Dir1\Dir2\Dir3\File.cpp,SUCCESS,

Это никак не должно повлиять на сравнение, но, по-видимому, вызывает уведомление об изменении каталога.

      ExamDiff.exe,22236,NotifyChangeDirectory,C:\Temp\git-difftool.a35220\right,SUCCESS,"Filter: FILE_NOTIFY_CHANGE_FILE_NAME, FILE_NOTIFY_CHANGE_DIR_NAME, FILE_NOTIFY_CHANGE_ATTRIBUTES, FILE_NOTIFY_CHANGE_SIZE, FILE_NOTIFY_CHANGE_LAST_WRITE, FILE_NOTIFY_CHANGE_CREATION, FILE_NOTIFY_CHANGE_SECURITY"

И вот что у нас есть:ExamDiff прослушивает изменения каталога (содержимого файла или метаданных), чтобы предупредить пользователя об изменении каталога. Он не заботится об изменении расширенных атрибутов NTFS, не фильтрует (или не может) их.

Интересно, есть ли способ в Win32 проверить, не повлияло ли изменение на что-либо, кроме расширенных атрибутов (без сохранения состояния папки и сравнения), но это другой вопрос.

Изменить: нашел ссылку:https://social.technet.microsoft.com/Forums/en-US/c900b28d-4281-4a98-b6ca-418cf84f3cab/microsoft-defender-atp-mssenseexe-is-creating-extended-attributes

Другие вопросы по тегам