Linux meld что это

Сравнение файлов с помощью приложения 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 с помощью следующей команды:

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

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

Вам стоит знать, что для корректной работы 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. Левая стрелка позволяет осуществить противоположную операцию.

Читайте также:  Блокировка windows 10 одной кнопкой

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

Источник

Чем сравнить две директории в Linux? С помощью Diff и Meld Tools

Для тех пользователей линукс мира, у кого как и у меня, время от времени возникает необходимость сравнения файлов и директорий, решил написать эту небольшую статью, о двух прекрасных, на мой взгляд, утилитах — утилита командной строки diff и утилита с графическим Meld Tools. Опережая реакцию неосиляторов и не желающих разбираться самостоятельно, ответственно заявляю, эта статья лишь ознакомительная, и не претендует на роль мануала, посему не буду подробно расписывать как сравнивать файлы и директории в Diff и Meld, тем более они имеют, на мой взгляд, интуитивно понятный интерфейс, разобраться в котором сможет даже бабушка, ну или дедушка. К слову сказать, в настоящее время у меня есть очень явный пример того, что линукс в целом и информационные технологии, в частности, всем возрастам покорны. В Manjaro группе в телеграмме, есть у нас товарищ, ему 61 год, с компьютером он познакомился в 55 лет, ныне пенсионер и всю жизнь проработал шахтёром. Так вот от него вопросов по настройке и помощи в линуксе слышно меньше, чем от 20-25 летних юнцов.

Читайте также:  Parallels desktop восстановит windows

Что-то я ушёл от темы. Итак, обычно для того, чтобы сравнить два файла в Linux, я использую

. Если честно пользуюсь ей я ни потому, что я прям вот обожаю до ужаса этот волшебный мир консоли хотя да, он великолепен, а потому что diff есть «из коробки»в большинстве, если во всех дистрибутивах Linux, и если возникает необходимость сравнения файлов на чужом компьютере, то легче всего открыть терминал и использовать diff.

Так вот для сравнения двух каталогов достаточно выполнить простейшую команду:
diff -q directory-1/ directory-2/
Так это выглядит у меня
Если вам необходимо сравнить рекурсивно, со сравнением поддиректорий, то используйте ключ -r.

Вторая утилита о которой хочу рассказать, это графическая утилита которая позиционируется, как инструмент визуального сравнения и слияния для рабочего стола GNOME, но конечно же, не будет преступлением использовать её и с другими окружениями рабочего стола. Устанавливается она простым вводом одной команды:
sudo pacman -S meld [Archlinux и его производные]
sudo apt install meld [Debian/Ubuntu и его производные]
sudo yum install meld [RHEL/CentOS и его производные]
sudo dnf install meld [Fedora 22+ и его производные]

Так выглядит её интерфейс

Как я написал выше, разберется в нём и стар и млад, учиться никогда не поздно. Благо в линуксе каждый найдёт для себя то, что ему нравится, кто-то фанатеет от консольки и работает только в ней, кто-то любит графические интерфейсы. Если у кого то возникнут вопросы, не стесняйтесь спрашивайте в комментариях всегда открыт к диалогу.

Источник

Обзор инструментов для визуального сравнения и разрешения конфликтов слияния

На хабре уже было много статей о распределенных системах управления версиями (DVCS), их сравнений, а также сравнений GUI-клиентов для них. Также были обсуждения плагинов к IDE для работы с git и mercurial. Но практически не было информации об инструментах визуального сравнения и разрешения конфликтов слияния.


Недавно я «перескочил» с mercurial (который до сих пор считаю более удобным и логичным) на git, потому что, подавляющее большинство проектов, которые мне интересны, используют git и хостятся на github. В связи с этим, встал вопрос о пересмотре арсенала инструментов, в частности вопрос выбора инструмента визуального сравнения и слияния (diff and merge). Дабы восполнить недостаток информации на хабре, я решил написать этот мини-обзор. Как говориться — по горячим следам.

Под катом Вы также найдете примеры настроек Git для использования с DiffMerge и WinMerge под Windows. Думаю многим сэкономит время.

KDiff3

[скриншот]

DiffMerge

[скриншот]

[скриншот]

Diffuse

[скриншот]

TKDiff

[скриншот]

SmartSynchronize

[скриншот]

BeyondCompare

[скриншот]

Araxis Merge

[скриншот]

Название Особенности Платформа
С этим инструментом скорее всего сталкивались как пользователи git, так и пользователи системы mercurial, тем не менее пару строк не помешает.

Плюсы:

  • бесплатен;
  • поддерживает трехстороннее слияние;
  • умеет сравнивать директории;
  • с различными кодировками работает нормально;

Минусы:

  • без дополнений не подсвечивает синтаксис.

Примечание: устанавливается вместе с TortoiseHg.

Windows, Mac OS X, Linux
Плюсы:

  • бесплатен;
  • поддерживает трехстороннее слияние;
  • умеет сравнивать директории.

Минусы:

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

WinMerge

[скриншот]

Плюсы:

  • Open Source;
  • никаких проблем с кодировками;
  • подсветка синтаксиса без лишних телодвижений;
  • сравнение директорий.

Минусы:

  • инструмент слияния является двусторонним, что может создавать неудобства в некоторых случаях;
  • Windows only.

Примечание: этим инструментом я начал пользоваться очень давно (еще до того, как стал использовать mercurial и git) и тот факт, что инструмент слияния является двусторонним в большинстве случаев не доставляет особых неудобств.

Windows
Плюсы:

  • GPL v2;
  • двустороннее и трехстороннее слияние файлов;
  • сравнение директорий;
  • подсветка синтаксиса (при установленном GtkSourceView).

Минусы:

  • для установки под Windows требуется установить Python, GTK+, Glib, GtkSourceView, что не каждому понравиться.

Windows, Mac OS X, Linux
Инструкция по установке под Windows:
https://live.gnome.org/Meld/Windows
Плюсы:

  • GPL;
  • поддержка 2-way, 3-way и n-way (произвольное количество файлов) слияния;
  • подсветка синтаксиса;
  • отлично работает с UTF-8;
  • неограниченная глубина отмен (Undo);
  • удобная навигация по коду.

Минусы:

  • разве что, невозможность сравнивать директории.

Примечаие: при слиянии с помощью команды git mergetool через Git Bash под Windows открывается четвертое — «лишнее» окно.
Убрать можно, подправив конфиг c:/Git/libexec/git-core/mergetools/diffuse

Windows, Mac OS X, Linux
Примечание: при установке под Windows уже включает в себя все зависимости (в отличие от Meld), а именно Python и пакет PyGTK.
Плюсы:

  • GPLv2;
  • можно добавлять закладки для различий;
  • с кодировками работает нормально;

Минусы:

  • интерфейс менее удобен и выглядит очень бедно (см. скриншот), чем у других продуктов.
  • нет подсветки синтаксиса;
  • не умеет сравнивать директории.

Windows, Mac OS X, Linux
Плюсы:

  • трехстороннее слияние;
  • нет проблем с кодировками;
  • помимо файлов, может сравнивать директории.

Минусы:

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

Примечание: SmartySynctonize встроен в программу SmartGit — удобный GUI-инструмент для работы с Git (тоже бесплатен для некоммерческого использования).

Windows, Mac OS X, Linux
Плюсы:

  • трехстороннее слияние;
  • может сравнивать файлы, директории, удаленные директории, архивы, а также MP3-файлы, изображения и др. Но последние пункты — это в принципе не нужный функционал.

Минусы:

  • ShareWare;
  • нет версии под Mac.

Windows, Linux
Плюсы:

  • трехстороннее слияние;
  • нет проблем с кодировками;
  • подсвечивает синтаксис;
  • помимо файлов, может сравнивать директории и синхронизировать их;
  • хорошо работает на сравнении больших файлов (гигабайты) и больших директорий;
  • генерация отчётов по результатам сравнения.
  • Ribbon-интерфейс (если это можно назвать плюсом).

Минусы:

  • ShareWare;
  • нет версии под Linux.

Примечание: в комментариях многие расхваливают и советуют этот инструмент, несмотря на высокую стоимость.

Windows, Mac OS X

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

Git и DiffMerge

1) Добавим в директорию c:/Git/libexec/git-core/mergetools/
файл diffmerge следующего содержания:

2) Теперь добавим в файл c:/Users/swipe/.gitconfig
следующие строки:

3) Создадим конфликт и вызовем DiffMerge для его разрешения

Выводится сообщение о конфликте слияния, чего мы и добивались.

В среднем окне, приведем файл к требуемому состоянию и сохраним изменения.
Конфликт разрешен.
Настройку DiffMegre подсмотрел тут:
http://twobitlabs.com/2011/08/install-diffmerge-git-mac-os-x/

Git и WinMerge

1) Добавим в директорию c:/Git/libexec/git-core/mergetools/
файл winmerge следующего содержания:

Когда Git не может автоматически объединить изменения, происходит конфликт слияния и в конфликтующий файл добавляются маркеры слияния ( >>>>>>). Они необходимы для разрешения конфликта с помощью сторонних инструментов.
Рассмотрим файл readme.txt который образуется в результате выполнения слияния веток master и new в приведенном выше примере:

Мы можем открыть файл конфликтов с помощью программы WinMerge для разрешения конфликта.

После этого откроется средство двухстороннего слияния:

Исходя из описанной логики перепишем команду слияния merge_cmd следующим образом:

По сути, оба приведенных варианта эквивалентны.

2) Отредактируем .gitconfig

последняя строчка отменяет сохранение backup-файлов в директории репозитория.

3) Создадим конфликт при слиянии двух веток (см. пример с использованием DiffMerge).

Для разрешения конфликта при слиянии веток, воспользуемся командой

Источник

Читайте также:  Версии windows 10 какую версию выбрать
Оцените статью