|
 |

DiffDog 2008. Сравнение файлов, специализация - XML
21.10.2008 / Программы / Виктор Деревянко
В настоящее время существует множество различных, программ, предназначенных для сравнения файлов. Различаются они по большому счету набором поддерживаемых форматов файлов и списком предоставляемых функций. Одни программы максимально универсальны и способны работать с любыми текстовыми и/или бинарными файлами. Другие - специализированы, "заточены" под конкретные, как правило, нетривиальные форматы - PDF, Word, Excel, графику и т. п. Некоторые программы реализуют лишь функцию сравнения, другие позволяют выполнять объединение изменений и редактирование данных. Ряд программ умеют сравнивать только файлы, другие дают возможность сравнить директории и выполнить синхронизацию между ними.
Программа DiffDog, разработанная компанией Altova, обладает широким набором функций. Она способна сравнивать текстовые и бинарные файлы, директории и даже zip-архивы. Для текстовых форматов файлов поддерживается возможность сравнения, редактирования и совмещения внесенных изменений. Возможности работы с бинарными файлами более ограничены - реализована лишь функция побайтового сравнения, которая проверяет, совпадает содержимое файлов или нет. Содержимое директорий может сравниваться и синхронизироваться. С разнообразными zip-архивами, включая файлы в форматах Open Office XML и Microsoft Office 2007 XML, программа работает так же, как с обычными директориями.
Несмотря на то что программа DiffDog способна работать практически с любыми форматами текстовых файлов, у нее имеется четкая специализация. Если вспомнить, что фирма Altova является разработчиком хорошо известного редактора XML-файлов XMLSpy, то направление специализации не трудно предугадать - это XML.
По сравнению с другими текстовыми форматами XML имеет ряд особенностей, непосредственно относящихся к задаче сравнения файлов и объединения изменений. Во-первых, содержимое любого XML-файла делится на две части - разметка и данные. Два XML-файла могут содержать идентичные данные, но при этом иметь существенные различия в разметке. Например, может различаться порядок следования атрибутов в узлах, может варьироваться количество пробелов и символов переноса строк между различными узлами, документы могут быть представлены в разных кодировках, содержать различный набор комментариев и т. д. Если два подобных XML-файла сравнить обычной программой сравнения файлов, то она покажет массу различий, притом что данные-то в них одинаковые. Как правило, пользователя такое поведение не устраивает. Во-вторых, любой XML имеет четкую структуру из узлов и атрибутов. Хорошая программа сравнения обязана использовать этот факт и предоставлять пользователю дополнительные возможности по просмотру, навигации и подсветке синтаксиса. Наконец, для многих XML-форматов существуют DTD-схемы, описывающие структуру формата, что позволяет реализовать возможность проверки правильности отредактированного документа и функцию автоматической подстановки кода при редактировании.
Разработчики DiffDog постарались учесть все эти особенности и встроили в программу ряд нетривиальных возможностей, которые делают DiffDog просто незаменимой в задачах сравнения XML-файлов.
Сравнение файлов
Внешне интерфейс DiffDog соответствует классическому интерфейсу, применяемому в большинстве программ сравнения. Имеются две расположенные рядом панели, отображающие содержимое сравниваемых файлов. Над каждой находится панель инструментов, показывающая название открытого файла и содержащая кнопки, позволяющие открыть, сохранить и перечитать содержимое файла. Снизу отображается строка статуса, в которой выводится итоговая информация об имеющихся в файлах различиях. Различия в тексте файлов выделяются цветом.
 | | Сравнение текста в Altova DiffDog |
Несколько нетривиальным является способ отображения вставленных и пропущенных строк в сравниваемых файлах. В классическом интерфейсе, если в одном из сравниваемых файлов имеется строка, которой нет во втором файле, второй файл дополняется пустой строкой, отображаемой напротив вставленной. В результате идентичные строки всегда расположены напротив друг друга и содержимое обоих файлов прокручивается синхронно. При этом файлы не редактируются. В DiffDog сделано по-другому. Никаких дополнительных пропусков не добавляется. Вставленные и пропущенные строки помечаются специальными направляющими линиями, соединяющими панели. Прокрутка содержимого файлов тоже синхронизирована, однако из-за отсутствия дополняющих пустых строк идентичные строки вполне могут быть сдвинуты относительно друг друга. Это немного непривычно, но не представляет особых проблем. Для чего это сделано? Для того, чтобы файлы можно было редактировать прямо в окне просмотра, не вызывая внешних редакторов. Красивое решение.
 | | Визуализация добавленных и удаленных строк |
Большинство интересных возможностей DiffDog становятся доступными при открытии XML-файлов. DiffDog всегда автоматически определяет наличие XML-разметки в открытом файле и независимо от расширения файла активирует возможности по работе с XML.
 | | Сравнение XML в Altova DiffDog | Прежде всего изменяется способ отображения файла. Появляются подсветка синтаксиса XML-разметки, пунктирные направляющие линии, соединяющие открывающие и закрывающие узлы. Если документ выглядит некрасиво, можно воспользоваться функцией Pretty-Print, которая позволяет автоматически отрегулировать величину отступов так, чтобы четко была видна древовидная структура документа и все закрывающие узлы располагались непосредственно под открывающими.
Появляется возможность сворачивать и разворачивать содержимое узлов - source-folding. Правда, эта возможность работает только в том случае, когда формат просматриваемого файла зарегистрирован в настройках программы и явно помечен как XML. Если расширение исходного файла программе не известно, то возможность сворачивания содержимого узлов не работает.
XML-файлы можно просматривать в двух режимах - в текстовом (Text View) и табличном (Grid View). Последний окажется привычным для пользователей XMLSpy. Файлы можно редактировать в любом режиме просмотра. Однако если в текстовом режиме вы редактируете документ напрямую, произвольным образом, то в табличном режиме вы используете для этого команды редактирования из контекстного меню - добавить атрибут, вставить узел, конвертировать в CDATA и т. д. и т. п.
 | | Табличное отображение XML в Altova DiffDog | DiffDog реализует функцию автоматического завершения имен при наборе, упрощающую процесс редактирование кода. Названия закрывающих узлов подставляются автоматически, при вводе названий атрибутов и открывающих узлов программа выводит список подходящих вариантов, основываясь на DTD-схеме. Отредактированный документ можно проверить двумя способами: убедиться, что он является правильно построенным, т. е. разметка XML в нем корректна, и проверить, что он является действительным, т. е. соответствует DTD-схеме.
DiffDog поддерживает два режима сравнения текстовых файлов: в виде текста и в виде XML. Каждый режим имеет ряд настроек. Особенно богат настройками режим сравнения XML - можно четко задать, какие изменения в разметке при сравнении нужно игнорировать, а какие - отображать. Пользователь может самостоятельно выбирать, какой режим сравнения нужно использовать - текстовый или xml, а может поручить программе выбирать подходящий режим автоматически.
 | | Параметры сравнения XML-файлов | Все найденные отличия в файлах DiffDog подсвечивает цветом. Пользователю предоставляется набор команд, позволяющий переходить от изменения к изменению и объединять изменения между собой. Причем всю работу можно вести с клавиатуры. Клавиши "Alt+Вверх", "Alt+Вниз" позволяют переходить к предыдущему и следующему изменению, "Alt+Влево", "Alt+Вправо" - копировать измененный текст слева направо и справа налево. Кстати, после каждого копирования DiffDog автоматически переходит к следующему найденному отличию. С одной стороны, это удобно, с другой - текст на экране все время двигается и к таким скачкам текста приходится приноравливаться.
Сравнение директорий
Помимо файлов, DiffDog позволяет сравнивать содержимое директорий и zip-архивов. Интерфейс соответствует классическому - содержимое директорий отображается на двух расположенных рядом панелях, различия выделяются цветом. Соответствующие друг другу файлы и директории располагаются на панелях напротив друг друга, добавленные файлы дополняются пустыми строками на соседней панели.
 | | Сравнение zip-архивов | Панель инструментов, расположенная сверху, позволяет настраивать порядок отображения содержимого сравниваемых директорий. Можно раскрыть и свернуть вложенные директории, отфильтровать список отображаемых файлов по типам, включить или отключить режим сравнения вложенных директорий, показать или скрыть новые файлы на левой или правой панели и т. д. Такой мощный набор инструментов, позволяющих практически произвольным образом отфильтровать содержимое директорий, может оказаться очень полезным, поскольку в синхронизации участвуют только отображаемые файлы.
DiffDog позволяет проводить синхронизацию двумя способами: пошагово или целиком. Пошаговый режим позволяет выбирать и синхронизировать файлы вручную. Поддерживаются те же комбинации клавиш "Alt+Вверх", "Alt+Вниз", "Alt+Влево", "Alt+Вправо", что и в окне сравнения файлов. К сожалению, в таком режиме можно синхронизировать только по одному файлу за раз - несколько файлов сразу выделить не получается.
 | | Синхронизация директорий | Второй режим синхронизации позволяет одной командой синхронизировать сразу все выбранные в директориях файлы. В этом режиме открывается отдельное диалоговое окно, в котором можно задать параметры синхронизации. DiffDog автоматически определяет способы синхронизации для всех файлов и вложенных директорий таким образом, чтобы в итоге обе директории содержали наиболее свежие версии файлов или наиболее старые версии файлов - как выберет пользователь. При желании для каждого файла можно задать способ синхронизации отдельно.
Кодировки
DiffDog корректно работает с текстовыми файлами, закодированными в Unicode или UTF8. Без проблем отображает файлы в Windows-1251. Однако другие кодировки русского языка не поддерживаются, так что файлы в KOI-8 или OEM866 придется предварительно перекодировать.
Кодировку DiffDog определяет автоматически, возможности указать ее явно не предусмотрено. Как известно, в XML-файле кодировку опционально можно указать в заголовке. Если она там указана, то DiffDog отображает XML корректно. Если не указана - возможно отображение файла в виде крокозябриков, которое можно победить только одним способом - явно прописать кодировку в заголовке файла.
Резюме
Если коротко - программа DiffDog понравилась. Интерфейс интуитивно понятный, работать с ним удобно и просто. Очень порадовала возможность сравнивать файлы и одновременно редактировать их, не открывая никаких дополнительных редакторов. Да и средства по работе с XML достойны самой высокой оценки. Поэтому, если вы подыскиваете хорошую программу для сравнения и синхронизации файлов и директорий, имеет смысл обратить внимание на DiffDog. Триальный период пробной версии составляет 30 дней, для ее активирования требуется наличие подсоединения к Интернету.
Системные требования:
Windows Vista, XP, and 2000;
версия программы DIffDog на момент написания статьи: Altova DiffDog 2008 Release 2 Service Pack 2.
Ссылки по теме:
Автор статьи: Виктор Деревянко
Отзывы:
|
|
* - поля, обязательные для заполнения.
Ваш отзыв будет опубликован в течение двух-трех дней. Мы оставляем за собой право не публиковать отзывы, которые будут содержать нелитературные выражения и оскорбительные высказывания.
|
|