Простым решением будет применение фильтра grep для удаления метаданных комментариев из просматриваемой разницы. Вы можете сделать это для вывода утилиты контроля версий:
myVersionControl diff REV1 REV2 filea | grep -v '^..#'
или вы можете указать утилите diff управления версиями игнорировать их перед выполнением сравнения, что, скорее всего, приведет к более надежному и красивому выводу:
Я не знаю, какую систему контроля версий вы используете, но git (например) позволяет вам предварительно обработать ввод в diff и удалить строки комментариев для определенных типов файлов (спасибо VonC), см. man gitattributes
и поиск Выполнение текстовых различий двоичных файлов . Вот тело примера сценария, которое нужно сохранить как /usr/local/bin/strippocomments
, что сделает это:
grep -v '^#:' $1
Затем вы можете указать git использовать этот сценарий для предварительной обработки po-файлов, добавив в файл .git/info/attributes
в своем репозитории следующее:
*.po diff=podiff
и в файл .git/config
в вашем хранилище:
[diff "podiff"]
textconv = /usr/local/bin/strippocomments
Использование git diff не должно включать строки, начинающиеся с #:
.
Обратите внимание, что различия, сгенерированные из git diff
с использованием этого подхода, не должны использоваться для исправления - но git format-patch
все равно будет использовать diff по умолчанию, поэтому исправления, сгенерированные для отправки по электронной почте, будут в порядке.