- WinMerge — программа для сравнения файлов и содержимого папок
- Сравнение папок по содержимому в WinMerge
- Сравнения содержимого файлов с помощью WinMerge
- @ max software
- Для того чтобы быстро сравнить и синхронизировать две папки, проделайте следующее:
- Путеводитель по программам для сравнения данных
- SmartSynchronize
- WinMerge
- Diffuse
- Perforce P4 Merge
WinMerge — программа для сравнения файлов и содержимого папок
Всевозможные полезные программы для вебмасетров и веб-разработчиков могут значительно упростить им работу. Например, если вам нужно выполнить массовый поиск текстов в файлах, то Sublime Text и WinGrep отлично справляются с задачей. Хотите записывать gif с экрана или видеокамеры? – используйте ScreenToGif. Сегодняшний герой обзора WinMerge позволяет сравнивать содержимое файлов и директорий. По словам авторов софта, он также может объединять/синхронизировать объекты, но с этой функцией я пока не разобрался.
Начнем с небольшого общего обзора, а потом будет практика. Основная задача данной Open Source программы — помогать пользователю сравнивать и находить изменения в коде разных версий проектов. Например, вам нужно обновить шаблон сайта или какой-то модуль для CMS, в которые вы по ходу работы вносили собственные правки. Чтобы случайно не “перезаписать поверху” все свои труды,а нужно посмотреть какие файлы в новой версии были изменены и внести в них те же правки, что и в старой версии.
WinMerge значительно упрощает эту задачу:
- Во-первых, он позволяет быстро находить изменения в директориях, показывая все обновленные элементы.
- Во-вторых, проводится сравнение содержимого файлов с отображением различий в наглядном визуальном формате (см. скриншот выше).
Основные фишки программы:
- К сожалению, она поддерживает только Windows ОС, хотя при этом понимает текстовые форматы Mac/Unix.
- Интерфейс напоминает софт для веб-разработки – здесь имеется подсветка синтаксиса, нумерация строк и др.
- При сопоставлении версий отдельных файлов есть отдельная “навигационная карта” по ним, позволяющая визуально быстро понять где именно находятся отличия.
- Тут имеется подсветка различий не только по строкам, но и внутри них (когда изменились лишь некоторые параметры, тексты); работает обнаружение строк, которые были перемещены.
- При сравнении каталогов также доступно много полезных опций: фильтрация выборки, включение подкаталогов, древовидный результат и т.п. Однако я, если честно, просто искал измененные объекты без этих всех фишек.
- Есть даже сравнение изображений.
- Создание патчей для управления версиями.
- Интеграция с обычным контекстным Windows меню, поддержка доп.плагинов и архивов.
- К плюсам программы бы еще добавил наличие детальной документации, хоть она и на английском.
Сравнение папок по содержимому в WinMerge
В панели управления программы есть иконка с директориями – кликаете по ней. В открывшемся окне будет выбор нескольких папок для обработки.
Теоретически тут можно выбрать сразу 3 директории, но я в примере указал только 2 (чаще всего задача именно такая). Здесь же виден фильтр по файлам, которые будут участвовать в процессе. Затем нажимаем по кнопке «Compare».
Результат может быть отображен с помощью вкладок или в виде дерева:
Кликайте по стрелочкам возле директорий чтобы посмотреть подкатегории и их содержимое. Разные иконки позволяют быстро понять результат сравнения: либо объекты полностью идентичны, либо отличия найдены, либо файл/папка присутствуют только в одной из версий (старой либо новой).
Сравнения содержимого файлов с помощью WinMerge
После того как вы нашли отличающиеся версии файлов, кликаете по одному из них – результат откроется в новой вкладке. Такой формат достаточно удобен, т.к. можно параллельно смотреть несколько файлов + всегда реально вернуться к вкладке с результатами по директориям.
Слева отображается «навигационная карта», где сразу видны места имеющихся отличий. Прокручиваете до них и смотрите код. В примере на картинке выше видим, что в обновленной версии веб-проекта был добавлен целый блок новых переменных (а в старой — пустое место).
Итого. Как видите, использовать программу WinMerge достаточно просто. Мне она помогает, когда обновляю Wordpres шаблоны или плагины, где я делал изменения напрямую в исходном коде. Единственный ее недостаток для некоторых пользователей, что она работает только под Windows. Актуальную версию всегда найдете на официальном сайте. Там же есть документация и инструкции.
@ max software
Довольно часто бывает необходимо быстро посмотреть, чем отличается содержимое двух папок, и затем, возможно, произвести синхронизацию, сделав их содержимое идентичным. Конечно, для этих целей можно создать и потом выполнить специально настроенный профиль синхронизации. Но в случае если требуется лишь однократная синхронизация, создание профиля не вполне оправдано.
@MAX SyncUp позволяет вам сравнить и синхронизировать две папки буквально в несколько кликов прямо из Проводника Windows.
Предположим, что вам надо увидеть, чем отличаются клипарты на вашем ноутбуке и стационарном компьютере, и скопировать на ноутбук отсутствующие там файлы. Также будем считать, что @MAX SyncUp установлен на ПК, и папка на ноутбуке доступна по сети.
Для того чтобы быстро сравнить и синхронизировать две папки, проделайте следующее:
На ПК откройте Проводник Windows, выберите папку, в которой хранится клипарт, щелкните правой кнопкой мышки и в контекстном меню выберите пункт Compare and Sync.
В поле Target paths укажите папку на ноутбуке, в которой находится клипарт (используйте кнопку Browse).
Это все! Теперь вы можете нажать Proceed, чтобы запустить процесс сравнения.
В более сложных случаях вы можете перед этим:
- Изменить набор синхронизируемых данных на закладке Data to synchronization,
например, исключить некоторые вложенные папки; - Выбрать размещение (FTP, Google Drive), тип и другие параметры хранилища для второй стороны синхронизации на закладке Storage options;
- Задать фильтр для синхронизируемых файлов на закладке File filter;
- Настроить дополнительные параметры на закладке Advanced options.
После завершения сравнения папок вам будет показано окно предварительного просмотра файлов, которые будут обрабатываться.
Здесь вы можете просматривать списки одинаковых файлов, различающихся файлов, файлов, которые будут обрабатываться, и т.д. Для этого установите Current view в соответствующее значение. Если необходимо, вы можете вручную изменить автоматически назначенные действия для файла или папки.
После того, как вы убедитесь, что программа будет делать именно то, что вам нужно, нажмите Execute для того, чтобы запустить процесс синхронизации, или нажмите Close, чтобы просто закрыть окно без внесения изменений.
После завершения процесса синхронизации отчет о результатах можно посмотреть в Сводном журнале в главном окне программы.
Путеводитель по программам для сравнения данных
Синхронизация данных требует от программистов, системных администраторов и времени, и соответствующих навыков. Однако не менее важен правильно подобранный инструментарий. Контроль версий, работа с проектами, резервное копирование, слияние и визуальное сравнение файлов — далеко не полный список задач, так или иначе связанных с синхронизацией.
В путеводитель вошли 10 программ, которые можно назвать во многом универсальными: они не привязаны к определенному сервису или приложению, позволяют выполнять вышеназванные (и менее специализированные) задачи не только через графический интерфейс, но и в режиме командной строки.
Критерии сравнения выглядят следующим образом:
- Интерфейс: поддержка режимов отображения, сохранение сессий, возможности настройки панели инструментов, колонок
- Функциональность текстового редактора, работа с исходным кодом
- Методы слияния и синхронизации, возможность трехстороннего сравнения
- Экспорт отчетов, создание патчей (diff)
- Дополнительные функции: интеграция со сторонними приложениями, поддержка расширений, протоколов и др.
SmartSynchronize
SmartSynchronize — кроссплатформенная программа для сравнения данных, структуры директорий и их содержимого. Фактически, программа бесплатна для некоммерческого использования, тем не менее, однопользовательская лицензия стоит 39 USD.
Режимы сравнения представлены в приветственном окне программы. Помимо диалога выбора файлов, здесь возможен просмотр истории и выбор сохраненного профиля. Также в настройках (Preferences) настраиваются фильтры: файловые — для отсеивания файлов по названию и расширению, и фильтры директорий — позволяют составить список исключений.
Для сравнения файлов используется двухпанельный режим side-by-side с синхронной прокруткой содержимого обеих панелей. Условных обозначений в SmartSynchronize немного, но, благодаря соединительным линиям (linking lines), операции сравнения и слияния очень интуитивны. SmartSynchronize указывает, куда и в каком направлении будет добавлен участок из одного файла в другой. Вставка текста производится одним кликом, позволяя обойтись без контекстного меню.
Кодировку и синтаксис документа можно определить вручную, предусмотрена подсветка синтаксиса для многих языков программирования и разметки, нумерация строк и другие редакторские функции, присущие интегрированным средам разработки IDE.
В целом, SmartSynchronize гибко настраивается, но все настройки распределены по разным разделам меню, что требует некоторого привыкания. Не хватает режимов отображения, настроек панели инструментов.
В режиме сравнения директорий выводится список файлов и статус для каждого из них, в нижней части окна доступен предосмотр. Метод сравнения — по содержимому или только по размеру и времени — определяется в настройках Edit → Preferences. Количество информационных колонок (тип файла, дата) нельзя увеличить, хотя отключить имеющиеся можно.
В SmartSynchronize реализовано как одностороннее объединение данных с левой или правой сторонами, так и обычная синхронизация. Конфигурацию можно сохранить для последующей загрузки, сделав снимок файловой структуры. Как поясняют разработчики, программа не распознает атрибуты файлов, поэтому использовать ее в качестве утилиты для резервирования нет смысла. Работа с архивами также не предусмотрена, равно как и с удаленными каталогами.
Помимо вышеупомянутых, имеется дополнительный, трехсторонний метод слияния — 3-Way-Merge, который позволяет объединить различия между несколькими версиями файлов, причем каждый из трех документов можно редактировать независимо друг от друга.
Функции сравнения, несомненно, востребованы программистами при контроле версий. Поэтому в заключение стоит сослаться на альтернативное решение этой же компании — SmartCVS. Программа представляет собой CVS-клиент с интегрированным инструментарием SmartSynchronize.
Резюме. SmartSynchronize предлагает неплохой инструментарий для работы с файлами и директориями, местами не поддающийся настройке и не выходящий за рамки базовых возможностей.
[+] Трехстороннее слияние
[+] Удобный текстовый редактор
[−] Отсутствие документации
[−] Невозможность синхронизации удаленных каталогов и архивов
WinMerge
WinMerge — программа для сравнения и объединения файлов и каталогов в ОС Windows. Ее можно использовать как отдельный инструмент либо в связке с проектами. В WinMerge встроен текстовый редактор с поддержкой языков программирования, подсветкой и нумерацией строк.
Имеется два режима работы с данными, объединенных в диалог выбора файлов и папок. При сравнении доступны фильтры двух типов: фильтры файлов и строковые. Это позволяет использовать различные надстройки и оперировать регулярными выражениями, отсеивая необходимые типы данных при сравнении.
В режиме сравнения файлов в окне отображаются оба файла, в левой и правой части. Для удобной навигации по содержимому предусмотрена карта («Местоположения»). Строки, которые имеют различия, отмечены цветом, также с ними можно ознакомиться в панели «Отличия». Основные операции слияния доступны в разделе «Объединение».
Отдельного внимания заслуживает функциональность текстового редактора. Внешний вид поддается модификации. Помимо подсветки синтаксиса и нумерации строк, предусмотрена работа со скриптами, а расширение функциональности возможно за счет дополнений. Дополнения относятся к распаковщику, представлению и редактору скриптов.
При сравнении каталогов результаты выводятся табулированным списком. В нем содержатся сведения о названии файла (каталога), его расположении, результат сравнения, дата, расширение и другая информация. Настроить отображение можно с помощью колонок. При необходимости можно активировать рекурсивный режим или переключиться в представление в виде дерева для удобной навигации.
WinMerge позволяет выполнять одни и те же задачи разными способами — в том числе, с помощью перетаскивания или через контекстное меню Проводника. Можно создавать проекты для быстрого доступа к данным и настройкам. WinMerge работает в режиме командной строки, также программу можно использовать в связке с системами контроля версий (TortoiseSVN, Visual Studio, Rational ClearCase и т. п.).
Резюме. WinMerge — программа, в первую очередь, с уклоном на работу с проектами. Интеграция с SVN, функциональный редактор, фильтры и расширения — все это отлично дополняет базовые возможности при сравнении данных.
[+] Поддержка расширений
[+] Функциональный редактор
[+] Интеграция со сторонними приложениями
[−] Нет трехстороннего сравнения
Meld — кроссплатформенная программа (OS X, Linux, Windows) для синхронизации файлов и директорий. С ее помощью осуществляется как двух-, так и трехстороннее сравнение. Прежде всего, инструментарий Meld будет полезен разработчикам, так как возможна интеграция с системами управления версиями: Git, Bazaar, Mercurial, Subversion и прочими.
Несмотря на поддержку нескольких платформ, приложение далеко не стабильно функционирует в Windows. Скажем, вкладки и окна не всегда открываются и закрываются корректно. Возможно, проблемы связаны с библиотекой PyGTK, входящей в инсталлятор. Запустить программу получилось не сразу и только от имени администратора. Ошибки возникают постоянно, в подтверждение — перечень текущих проблем.
В процессе сравнения файлов можно задействовать текстовый фильтр или поиск (поддерживается синтаксис regex). Предусмотрены подсветка синтаксиса (используется библиотека gtksourceview), нумерация строк, учет пробелов и другие опции, которые нужно активировать через настройки, так как по умолчанию они отключены. Вставки, изменения и конфликты в документе подсвечиваются, возможна быстрая навигация по списку изменений и экспорт в формате diff. Связь между файлами легко отследить с помощью соединительных линий и одним кликом произвести слияние нужных участков.
Сканирование файлов директорий работает очень медленно. Это связано с тем, что сравнение осуществляется по содержимому, а не по размеру и временно́й отметке. Проблема решается установкой флажка напротив соответствующей опции в настройках. Набор доступных колонок весьма ограничен: размер, дата модификации и разрешения. Хотя и можно воспользоваться файловым фильтром, просмотр длинного списка файлов все равно превращается в рутинный процесс: нельзя мгновенно остановить сканирование, свернуть дерево файлов, быстро переместиться к нужным элементам.
Разработчикам будет интересен третий режим работы приложения — Version Control View. Meld поддерживает интерфейс командной строки, поэтому предусмотрена интеграция со средами Git, Bazaar, Mercurial, Subversion и многим другими.
Резюме. Программа Meld зарекомендовала себя с хорошей стороны в среде Linux, чего нельзя сказать о функционировании в Windows. Нестабильная работа и неудобный интерфейс, отсутствие сессий, недостаточная гибкость настройки. С другой стороны, инструментарий программы неплох, а качественная адаптация Meld для Windows, возможно, лишь вопрос времени.
[+] Трехстороннее сравнение
[+] Поддержка систем контроля версий
[−] Медленная и нестабильная работа в Windows
[−] Неудобный и неинформативный интерфейс
Diffuse
Diffuse —кроссплатформенный продукт для ОС Windows, OS X, Linux и BSD, по интерфейсу напоминающий Meld (в основе — библиотека PyGTK), но имеющий функциональные отличия. Заявлена интеграция с Bazaar, CVS, Darcs, Git, Mercurial, Monotone, RCS, Subversion и другими средами.
Продолжая сравнение с Meld: Diffuse характеризуется стабильностью, здесь нет внезапных зависаний. Доступна подробная документация, интерфейс переведен на русский язык. Однако сравнение директорий не входит в инструментарий, в программу заложены только функции сравнения файлов и их редактирования. В Diffuse можно обнаружить несколько режимов слияния: — двух-, трех- и многостороннее. Таким образом, источников сравнения может быть сколько угодно, вопрос лишь в быстродействии и удобстве. Касательно второго аспекта можно лишь сказать, что сессий здесь нет — соответственно, работа с большими проектами в Diffuse под вопросом.
Различия отмечаются цветом, сводка (Comparison Summary) доступна возле полосы прокрутки, для навигации по списку изменений предназначены кнопки на панели управления. Нумерация строк и подсветка синтаксиса с возможностью ручного переключения включены по умолчанию. В отличие от других подобных редакторов, в Diffuse нельзя сразу выделить произвольный участок текста, для этого необходимо дважды кликнуть по содержимому. В ином случае можно выделять текст и производить другие действия только построчно.
Очевидно, что в Diffuse перелинковки различий между файлами нет, поэтому слияние строк осуществляется менее интуитивным методом. Все доступные команды собраны в разделе «Слияние», куда нужно обращаться каждый раз за неимением команд в контекстном меню. В SmartSynchronize или других упомянутых решениях многие операции производятся в один клик.
Работа с системами управления версиями возможна посредством командной строки, перечень команд с описанием изложен в справке.
Резюме. Функциональность такого рода востребована при слиянии нескольких текстовых документов. Программа лишена недостатков, присущих ближайшему аналогу Diffuse — Meld. Но, к сожалению, сравнение директорий и отчетность остались за бортом.
[+] Удобная работа со строками
[+] Интеграция с CVS
[+] Многооконное слияние
[−] Отсутствие сессий
[−] Маркировка изменений не интуитивна
Perforce P4 Merge
P4Merge нечасто упоминается среди других бесплатных продуктов (например, по сравнению с WinMerge). К тому же отыскать эту программу среди других компонентов комплекса Perforce непросто. Perforce — это коммерческая кроссплатформенная система управления версиями, обладающая широкой сферой применения, не в последнюю очередь за счет плагинов и интеграции с различными продуктами (IntelliJ IDEA, Autodesk 3D Studio Max, Maya, Adobe Photoshop, Microsoft Office, Eclipse, emacs и др.). Впрочем, P4 Merge может работать автономно от сервера Perforce, достаточно скачать программу с сайта разработчика для ее бесплатного использования.
Основные операции — это сравнение файлов (Diff) и слияние (Merge). Редактор документов предельно прост: есть нумерация, но нет подсветки синтаксиса. Редактировать файлы в двух панелях «на лету» нельзя, нужно выбрать одну из панелей, включить режим редактирования и затем сохранить изменения. Различия маркируются, для перехода между ними предназначены кнопки навигации. Ориентироваться по изменениям проще всего с помощью соединительных линий. В целом, интерфейс P4 Merge недостаточно удобен: в нем нет сводки по различиям, статистика по изменениям представлена суммарной цифрой, без детализации, для просмотра изменений нужно использовать ручное обновление.
Перечисляя другие особенности программы, стоит упомянуть сравнение изображений. В данном режиме обнаружились две полезные функции: подсветка различий и слияние двух файлов в один. При этом непонятно, почему меню редактора содержит невостребованные команды, такие как смена кодировки, методы сравнения и прочие, которые относятся к сравнению текстовых файлов, но никак не изображений.
Резюме. Конечно, в P4 Merge множество функциональных ограничений, особенно если сравнивать с платными продуктами. Приложение можно рассматривать сугубо как дополнение к серверу Perforce. Возможно, в поисках нужного инструментария следует обратить внимание и на другие компоненты, доступные на сайте разработчика.
[+] Диаграмма слияния в режиме Merge
[−] Слабая функциональность
[−] Невозможность редактирования на лету
[−] Отсутствие команд слияния