Как настроить BeyondCompare на игнорирование замененного текста SCM в комментариях? - PullRequest
19 голосов
/ 06 сентября 2010

У меня есть некоторые текстовые последовательности, которые заменены на SCM (Perforce в моем случае).

Я хочу настроить BeyondCompare, чтобы рассматривать эти последовательности как несущественные различия, чтобы иметь возможность игнорировать их при сравнении файлов.

В моем случае речь идет об исходных файлах Python, и последовательности выглядят как

# $Id: //depot/.../filename#7 $
# $DateTime: 2010/09/01 10:45:29 $
# $Author: username $
# $Change: 1234 $

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

Ответы [ 2 ]

16 голосов
/ 06 сентября 2010

Вам необходимо определить новый элемент грамматики (назовем его «SCM») и пометить его как неважный ( см. Учебное пособие ; выберите «Основные» и обязательно отметьте «Регулярное выражение») .

Элемент грамматики должен быть (если я правильно интерпретирую ваши примеры):

^.*\$(Id|DateTime|Author|Change):.*$

Это игнорирует любую строку, содержащую $Id:, $DateTime: и т. Д.

Если вы хотите игнорировать только строки, начинающиеся с # $..., используйте

^\s*#s*\$(Id|DateTime|Author|Change):.*$

И если вы хотите игнорировать вещи между $ (и относиться ко всему остальному как к важному), используйте

\$[^$\r\n]*\$

или

\$(Id|DateTime|Author|Change)[^$\r\n]*\$

в зависимости от того, заботитесь ли вы об этих ключевых словах или нет.

4 голосов
/ 30 апреля 2016

Парсер Beyond Compare в настоящее время (v3 / v4) не поддерживает вложенные элементы, поэтому грамматики форматов файлов нельзя использовать для пометки последовательности SCM как неважной для определенного типа файлов, если текст уже классифицирован как комментарий, строка и т. д.

В Beyond Compare 4.0 добавлена ​​поддержка пометки произвольного текста как неважного для всего сравнения, отдельно от грамматики.

  1. Загрузите интересующие вас файлы
  2. Нажмите кнопку Настройки сеанса (он же Правила со значком судьи) или используйте пункт меню Сессия-> Настройки сеанса .
  3. Перейти на вкладку Важность
  4. Нажмите кнопку + внизу списка Неважный текст .
  5. Добавьте обычный текст или регулярное выражение к Text, чтобы найти edit и установите флажок Regular Expression , если необходимо. В этом случае регулярное выражение будет:
    \$(Id|DateTime|Author|Change):.*\$
  6. Нажмите ОК .
  7. По умолчанию эти изменения будут влиять только на текущее сравнение. Вы можете изменить поле со списком в нижней части диалогового окна «Параметры сеанса» с Используйте только для этого представления до Также обновите значения по умолчанию сеанса , чтобы они влияли на все будущие сравнения для всех типов файлов. *
...