Фильтрация текста
При сравнении нескольких файлов у вас могут быть участки текста, в которых различия не очень важны. Например, вы можете захотеть сосредоточиться на изменённых участках кода и игнорировать любые изменения в строках комментариев. С помощью текстовых фильтров вы можете указать Meld игнорировать текст, соответствующий шаблону (например, регулярному выражению), при отображении различий между файлами.
Текстовые фильтры затрагивают сравнение не только файлов, но и папок. Дополнительные сведения смотрите в примечаниях к фильтрации файлов.
Добавление и использование текстовых фильтров
Включить или отключить текстовые фильтры вы можете на вкладке Текстовые фильтры в диалоговом окне Настройки. В Meld уже включены несколько простых фильтров, но вы также можете добавить свои собственные.
Текстовыми фильтрами в Meld являются регулярные выражения, которые сопоставляются с текстом сравниваемых файлов. Любой совпавший при сравнении текст игнорируется; вы по-прежнему будете видеть этот текст при просмотре сравнения, но он не будет учитываться при поиске различий. Текстовые фильтры применяются по порядку, поэтому первый фильтр может удалить текст, который соответствует критериям второго фильтра, и так далее.
Если вы не знакомы с регулярными выражениями, то можете ознакомиться с Python Regular Expression HOWTO.
Правильное использование текстовых фильтров
Весьма вероятной является ситуация, когда текстовое фильтрование будет работать не так, как следует, а поддержка фильтрации в Meld не является полной. В частности, текстовый фильтр не может изменять количество строк в файле. Например, если включен встроенный фильтр Script comment и выполнено сравнение таких файлов:
comment1.txt |
comment2.txt |
то строки, начинающиеся с b, будут отображаться как идентичные (#comment будет удалён), но строка с d будет отмечена как отличная от строки, содержащей #comment справа. Причина этого то, что #comment будет удалён с правой стороны, но сама строка останется; Meld покажет строку d как отличающуюся от пустой строки на другой стороне.
Пустые строки и фильтры
Параметр Игнорировать изменения пустых строк на вкладке Текстовые фильтры требует отдельного включения. Если этот фильтр включён, то любое изменение, состоящее только из пустых строк, полностью игнорируется. Это может произойти как из-за наличия фактического пробела в тексте, так и из-за действия текстовых фильтров, которые удалили содержимое, оставив только пустые строки.
Вы можете использовать этот параметр, чтобы обойти некоторые проблемы и ограничения, связанные с невозможностью фильтров удалить целые строки, но и сам по себе он может быть полезен.