Я пишу небольшой набор тестов, который запускает инструмент для тестирования поверх множества входных файлов. Для каждого входного файла инструмент создает соответствующий выходной файл (оба в формате XML). Входные и выходные файлы регистрируются в репозитории Git.
Выходные файлы содержат время, когда инструмент был скомпилирован, поэтому выходные файлы обязательно модифицируются после того, как они были заново созданы тестируемым инструментом.
Чтобы быстро увидеть, изменились ли выходные данные (когда я изменил источники инструмента), я хотел бы проверить, изменилось ли содержимое узла OutputFingerprint
(простой хэш над содержимым соответствующего части выходного файла).
Читая руководство для git-diff
, я обнаружил, что есть опция -G
:
-G
Ищите различия, чья добавленная или удаленная строка соответствует данному .
К сожалению, они не предоставляют пример того, как использовать опцию -G
.
Моей первой мыслью было просто написать
git diff -GOutputFingerprint
но это не так:
> git diff -GOutputFingerprint
error: invalid option: -GOutputFingerprint
Следующая мысль заключалась в том, чтобы поместить регулярное выражение в косые черты, что тоже не удалось:
> git diff -G/OutputFingerprint/
error: invalid option: -GC:/Program Files/Git/OutputFingerprint/
Кроме того, просто поставить пробел между -G
и OutputFingerprint
не работает:
> git diff -G OutputFingerprint
fatal: ambiguous argument 'OutputFingerprint': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Когда я звоню git diff
без каких-либо параметров, я получаю модификацию:
- <OutputFingerprint>e45807ca76fc5bb78e9e928c6fb7eed6</OutputFingerprint>
+ <OutputFingerprint>d0846851bc9d52b37f7919def78660a2</OutputFingerprint>
Еще одна мысль состояла в том, чтобы использовать git diff -S".*OutputFingerprint.*" --pickaxe-regex
, но это также не увенчалось успехом.
git --version
дает мне git version 1.7.3.1.msysgit.0
, если это актуально.
Когда я спрашиваю git diff --help
, в прилагаемом руководстве отображается опция -G
.
Итак, кто-нибудь может дать мне пример того, как правильно использовать git diff -G
?