Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Сравнение файлов с помощью приложения Meld в Linux для начинающих

Оригинал: A beginner's guide to comparing files using visual diff/merge tool Meld on Linux
Автор: Himanshu Arora
Дата публикации: 19 января 2017 г.
Перевод: А.Панин
Дата перевода: 8 марта 2017 г.

После того, как мы рассмотрели несколько инструментов с интерфейсом командной строки, предназначенных для сравнения и объединения файлов в Linux, логично было бы описать некоторые аналогичные инструменты с графическим интерфейсом. Это следует сделать еще и потому, что не все привыкли работать с интерфейсом командной строки системы и/или инструментами с интерфейсом командной строки для сравнения файлов, которые могут оказаться более сложными в освоении для неопытных пользователей.

По этой причине мы посвятим эту новую серию статей рассмотрению возможностей приложения под названием Meld.

Но перед тем, как перейти к рассмотрению вопросов установки и использования упомянутого приложения, следует упомянуть о том, что все инструкции и примеры, представленные в данной статье, были протестированы в системе Ubuntu 14.04 с Meld версии 3.14.2.

Пара слов о Meld

Meld является инструментом для визуального сравнения и объединения файлов, предназначенным в первую очередь для разработчиков программного обеспечения (однако, вам стоит иметь в виду, что мы будем рассматривать данный инструмент, ориентируясь на потребности конечных пользователей). Данный инструмент позволяет осуществлять сравнение как двух, так и трех файлов, причем он может сравнивать не только содержимое этих файлов, но и содержимое директорий, а также проектов, разрабатываемых с использованием некоторых систем контроля версий.

На официальном сайте проекта говорится: "Приложение Meld упрощает обзор модификаций кода, а также разбор патчей. Оно может помочь вам даже в выяснении последствий внесения модификаций, которых вы старались избегать. Код проекта распространяется в соответствии с условиями лицензии GPL v2."

Установка Meld

Если вы используете Ubuntu или любой дистрибутив на основе Debian, вы можете загрузить и установить пакет программного обеспечения Meld с помощью следующей команды:

sudo apt-get install meld

Также вы можете использовать ваш менеджер пакетов программного обеспечения для установки данного приложения. Например, в Ubuntu вы можете использовать менеджер пакетов программного обеспечения под названием Центр приложений Ubuntu или Ubuntu Software, заменивший первый менеджер пакетов программного обеспечения в версии 16.04.

Однако, не стоит исключать и вариант развития событий, при котором версия Meld из официального репозитория дистрибутива Ubuntu окажется устаревшей. В подобной ситуации вы можете использовать более новую версию приложения после загрузки архива с файлами проекта, расположенного по данной ссылке. Если вы решите пойти этим путем, вам придется распаковать загруженный архив и запустить исполняемый файл meld, расположенный в директории bin дерева исходного кода проекта:

~/Downloads/meld-3.14.2/bin$ ./meld

Вам стоит знать, что для корректной работы Meld требуются следующие программные компоненты:

  • Python 2.7 (версия, совместимая с Python 3.3, находится в разработке)
  • GTK+ 3.14
  • GLib 2.36
  • PyGObject 3.14
  • GtkSourceView 3.14
  • pycairo

Использование Meld

После запуска приложения вы должны будете увидеть окно, аналогичное приведенному на иллюстрации ниже.

Таким образом, у вас имеется три варианта действий: Сравнение файлов (File Comparsion), Сравнение каталогов (Directory comparsion) и Просмотр контроля версий (Version control view).

Нажмите на кнопку Сравнение файлов (File comparsion), после чего вам будет предложено выбрать файлы для сравнения.

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

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

Очевидно, что в исследуемых файлах отличается лишь вторая строка, причем различие заключается в дополнительном символе "3" во второй строке файла с именем file2. Эти черные стрелки, которые несложно заметить, используются для осуществления операции объединения/модификации файлов. Правая стрелка в данном случае позволяет заменить вторую строку файла с именем file2 на соответствующую строку из файла с именем file1. Левая стрелка позволяет осуществить противоположную операцию.

После внесения изменений вы можете воспользоваться комбинацией клавиш Ctrl+S для их сохранения.

Это был простой пример, демонстрирующий принцип работы приложения Meld. Давайте рассмотрим пример более сложного сравнения файлов.

Перед обсуждением изменений стоит обратить внимание на то, что интерфейс приложения Meld содержит специальные области, указывающие позиции отличающихся фрагментов исследуемых файлов. Если говорить конкретно, то речь идет о вертикальных полосах в левой и правой сторонах окна. Например, вы можете увидеть одну из таких полос на следующей иллюстрации.

Если вы посмотрите на иллюстрацию внимательнее, то без труда обнаружите, что полоса содержит цветные блоки. Эти блоки позволяют оценить все различия между двумя исследуемыми файлами. В официальной документации дается следующее описание данных блоков: "Каждый цветной блок представляет фрагмент файла, который был добавлен, удален, изменен или является причиной конфликта между вашими файлами в зависимости от используемого цвета".

Теперь давайте вернемся к рассмотрению нашего примера. Из следующих иллюстраций становится очевидной простота выявления изменений файлов (а также их объединения) в случае использования Meld:

До этого момента мы пролистывали содержимое файлов от одного отличия к другому. Однако, бывают случаи, когда исследуемые файлы имеют очень большой объем, что затрудняет процесс поиска отличий. В таких случаях могут использоваться кнопки с оранжевыми стрелками на панели инструментов, которая расположена над областью редактирования.

Также Meld позволяет выполнять следующие базовые операции: вы можете использовать стандартную комбинацию клавиш Ctrl+F для поиска произвольного текста в области редактирования, клавишу F11 для перевода приложения в полноэкранный режим, комбинацию клавиш Ctrl+R для обновления содержимого области редактирования (обычно используется когда один или оба исследуемых файла подверглись внешнему изменению в процессе исследования).

А это список ключевых функций приложения, приведенный на официальном сайте проекта Meld:

  • Двух- и трехстороннее сравнение файлов и директорий.
  • Обновление результатов сравнения файлов по мере редактирования их содержимого.
  • Режим автоматического объединения и действия с измененными блоками данных, упрощающие объединение файлов.
  • Визуализации, упрощающие сравнение файлов.
  • Поддержка Git, Bazaar, Mercurial, Subversion и так далее.

Учтите, что приведенный выше список возможностей приложения не является исчерпывающим. Веб-сайт проекта содержит отдельную страницу с исчерпывающим описанием возможностей Meld. На этой странице все возможности приложения разделены на секции в зависимости от того, используется ли приложение для сравнения файлов, сравнения директорий, сравнения данных проектов под управлением систем контроля версий или объединения файлов.

Как и любой другой программный продукт, Meld не может выполнять некоторые операции. На официальном веб-сайте проекта упомянута по крайней мере одна такая операция: "При отображении различий между файлами осуществляется вывод содержимого этих файлов таким же образом, как это мог бы сделать обычный текстовый редактор. Приложение не вставляет в файлы дополнительные строки для того, чтобы привести определенные измененные фрагменты файлов слева и справа к одинаковому размеру. Также не существует параметра, позволяющего активировать данный режим.".

Заключение

В данной статье были рассмотрены самые очевидные приемы использования приложения Meld, которое обладает достаточно богатым функционалом. Но для начала этой информации будет вполне достаточно, ведь это лишь первая статья серии. Для того, чтобы заинтересовать вас, следует упомянуть о том, что в круг дополнительных возможностей Meld входит функция игнорирования определенных типов отличий файлов, функции перемещения, копирования и удаления отдельных отличий файлов, кроме того, имеется много нюансов, связанных с запуском приложения из командной строки. Мы обсудим эти функции и нюансы в следующих статьях серии.