Все познается в сравнении: Три программы семейства "сравнителей"

Все познается в сравнении

Вряд ли найдется человек, которому за все время работы с компьютером хоть раз не пришлось сравнивать файлы или папки, причем с целью не просто узнать, одинаковы ли файлы по длине, дате или времени создания, а посмотреть, в чем конкретно заключаются различия между ними. Чаще всего это либо чисто тестовые файлы, либо близкие к ним по сути (веб-страницы, XML-документы, исходные тексты программ, различные файлы с настройками и так далее). Сравнивать их, что называется, "на глаз", поочередно открывая в редакторе, неудобно и очень долго, особенно если эти файлы большие. Вот об инструментах для облегчения визуального сравнения текстовых файлов мы и поговорим.

Для начала представим себе, что у нас есть два больших текстовых файла, которые отличаются друг от друга всего лишь десятком строчек. Наша задача — найти отличия и даже, может быть, перенести кое-что из одного файла в другой. Или вообразим себя на месте программиста или веб-мастера, работающего над большим проектом, в котором множество всевозможных файлов (с исходными тестами или веб-страницами, скриптами и т.п.). Так вот, часто бывает нужно не только сравнить два каталога (с разветвленной системой подкаталогов), где хранятся различные версии проекта, но и синхронизировать их между собой. Причем не просто переписать все из одного в другой, а сделать это выборочно, при этом некоторые файлы нужно сравнить и перенести часть кода из одного в другой. Внимание, вопрос: как бы это провернуть в автоматическом или полуавтоматическом режиме, имея полный контроль над всеми операциями?

Конечно же, программы такого рода есть, причем они предлагают довольно-таки внушительный набор возможностей, оценить который по достоинству смогут лишь те, кому часто приходится заниматься описанными выше делами. Однако и для менее искушенных пользователей будет полезным познакомиться с наиболее известными представителями семейства "сравнивателей", чтобы знать, к кому обращаться за помощью. Давайте взглянем на три продукта этого класса.
Araxis Merge от компании Araxis — это, несомненно, наиболее популярный продукт, известный в программистских кругах и ставший уже своеобразным стандартом де-факто. Многие пользователи о его конкурентах даже и не знают — им хватает предоставляемых им возможностей. И неудивительно: удобный, продуманный интерфейс, мощный набор функций, подробная документация сделали свое дело. Как видно из названия, самая главная "фича" — это как раз синхронизация и объединение файлов и папок.

При сравнении файлов различия между ними соответствующим образом выделяются, и есть возможность одним щелчком мыши перенести текст из одного файла в другой. Тут же, "не отходя от кассы", их можно редактировать. Можно убрать все одинаковые строки и увидеть только те, в которых есть отличия. Различия в комментариях (если сравниваются исходные тексты программ или веб-страницы) можно игнорировать, используя поддержку регулярных выражений. Различия можно игнорировать также если они состоят из пробелов. Просмотр сравниваемых файлов очень удобен: они прокручиваются в окошках синхронно.
Есть возможность работы через командную строку и даже присутствует свой API, позволяющий программистам пользоваться функциями Merge из своих приложений. Цвета, шрифты, варианты поведения при сравнении, — все это можно настроить. Поддерживаются Unicode-файлы, то есть сравнить два файла с информацией из реестра, записанных в Unicode, проще простого. Результаты сравнения можно распечатать, что наверняка будет очень полезно тем, кто анализирует чужой код с целью найти там ошибки или проанализировать, сколько изменений было внесено по сравнению с предыдущей версией файла.
Нельзя не упомянуть о возможности сравнения сразу трех файлов — такого у двух других программ не обнаружено. Что касается сравнения папок, то тут все без особых изысков: можно после сравнения провести синхронизацию содержимого папок, заменив их файлы более свежими (ну, или наоборот) версиями.

А вот GrigSoftware для наших целей предлагает два отдельных продукта, которые, тем не менее, могут быть легко друг с другом интегрированы: Sychronize It! для сравнения и синхронизации папок и Compare It! — для файлов. Сравнивать можно не только папки, но и архивы — для этого нужно настроить программу, чтобы она смогла запустить архиватор. Это делается путем редактирования специального конфигурационного файла, доступ к которому есть прямо из окна с настройками.
Сами файлы сравнивать можно, на самом деле, чем угодно — для этого достаточно настроить программу, которая будет при этом запускаться, указав полный путь к ней и способ передачи параметров (доступ к этим настройкам открывается после нажатия на кнопку Tools). При этом можно настроить несколько инструментов и использовать наиболее подходящий в данный момент. Помимо множества удобных настроек, есть поддержка проектов. То есть можно задать сравниваемые папки, маски для файлов и некоторые другие параметры и сохранить это как некую конфигурацию, а затем создать проект с данной конфигурацией. Это очень удобно, когда вам периодически приходится повторять сравнение новой и старой версий некоего проекта.

Что касается Compare It!, то, помимо стандартных функций, можно отметить несколько "изюминок". Например, при сравнении XML-документов можно использовать регулярные выражения, чтобы сравнивать только данные, а не разметку документа, фильтруя тэги. Сравнивать можно не только файлы, созданные в DOS или Windows, но и созданные в Unix или Macintosh. Можно сгенерировать отчет о найденных различиях в виде HTML-документа для последующей публикации на веб-сайте. Не так давно была выпущена новая, пока еще бета-версия, о которой сами разработчики пишут, что "она содержит идеи и предложения, поступавшие от пользователей в течение трех лет".
Active File Compare отличает встроенный менеджер файлов, синтаксическое выделение для 10 типов файлов (имеются в виду исходные тексты на различных языках программирования, HTML- и XML-документы и т.п.), и поэтому различия в строках отмечаются значками на полях, а не различными цветовыми раскрасками. Редактирование файлов возможно, но по умолчанию оно выключено, чтобы при сравнении ничего не испортить. Для редактирования каждого конкретного типа файлов можно указать даже свой, внешний редактор. В остальном Active File Compare по основным возможностям не уступает своим собратьям.
В этой статье автор ставил цель лишь познакомить вас с такого рода программами и рассказать, как они могут вам помочь, поэтому некоторые "фичи" не были подробно рассмотрены. В целом, если нам нужно только удобное сравнение папок или файлов, то подойдет любой из описанных продуктов. Однако у SynchronizeIt!, CompareIt! и Active File Compare есть русский интерфейс, а у Araxis Merge — мощный API, который программисты могут использовать из своих программ. И, как видно даже из нашего очень поверхностного обзора, схожие по сути функции могут быть реализованы по-разному. Следовательно, вы сможете сделать выбор основываясь уже на своих личных предпочтениях. В любом случае помните: все познается в сравнении.

Ссылки по теме:
Araxis Merge — http://www.araxis.com/merge/index.html
Synchronize It!/Compare It! — http://www.grigsoft.com/products.htm
Active File Compare — http://www.formulasoft.ru/active-file-compare.html
Утилиты в каталоге Softkey — http://www.softkey.ru/catalog/index.php?CID=237

Андрей Кулабухов, akula@tut.by
http://softkey.info



Компьютерная газета. Статья была опубликована в номере 23 за 2003 год в рубрике soft :: файлы

©1997-2024 Компьютерная газета