meld linux что это
Обзор инструментов для визуального сравнения и разрешения конфликтов слияния
На хабре уже было много статей о распределенных системах управления версиями (DVCS), их сравнений, а также сравнений GUI-клиентов для них. Также были обсуждения плагинов к IDE для работы с git и mercurial. Но практически не было информации об инструментах визуального сравнения и разрешения конфликтов слияния.
Недавно я «перескочил» с mercurial (который до сих пор считаю более удобным и логичным) на git, потому что, подавляющее большинство проектов, которые мне интересны, используют git и хостятся на github. В связи с этим, встал вопрос о пересмотре арсенала инструментов, в частности вопрос выбора инструмента визуального сравнения и слияния (diff and merge). Дабы восполнить недостаток информации на хабре, я решил написать этот мини-обзор. Как говориться — по горячим следам.
Под катом Вы также найдете примеры настроек Git для использования с DiffMerge и WinMerge под Windows. Думаю многим сэкономит время.
Название | Особенности | Платформа |
С этим инструментом скорее всего сталкивались как пользователи git, так и пользователи системы mercurial, тем не менее пару строк не помешает. Примечание: устанавливается вместе с TortoiseHg. | Windows, Mac OS X, Linux | |
Создатели: | Стивен Кеннеди, Кай Вилладсен | |
---|---|---|
Выпущена: | май 2002 [1] | |
Постоянный выпуск: | 3.14.1 / 4 октября 2015 [2] | |
Написана на: | Python | |
Операционная система: | Linux, Mac OS X [3] UNIX-подобные, Windows [4] Linux | |
Платформа: | Windows, Mac OS X, Linux | |
Локализация: | русский и др. | |
Лицензия: | GNU GPL | |
Веб-сайт | http://meldmerge.org/ |
Содержание
Оценка программы MELD
Несмотря на поддержку нескольких платформ, приложение далеко не стабильно функционирует в Windows. Скажем, вкладки и окна не всегда открываются и закрываются корректно. Возможно, проблемы связаны с библиотекой PyGTK, входящей в инсталлятор. Запустить программу получилось не сразу и только от имени администратора. Ошибки возникают постоянно, в подтверждение — перечень текущих проблем.В процессе сравнения файлов можно задействовать текстовый фильтр или поиск (поддерживается синтаксис regex). Предусмотрены подсветка синтаксиса (используется библиотека gtksourceview), нумерация строк, учет пробелов и другие опции, которые нужно активировать через настройки, так как по умолчанию они отключены. Вставки, изменения и конфликты в документе подсвечиваются, возможна быстрая навигация по списку изменений и экспорт в формате diff. Связь между файлами легко отследить с помощью соединительных линий и одним кликом произвести слияние нужных участков.
Сканирование файлов директорий работает очень медленно. Это связано с тем, что сравнение осуществляется по содержимому, а не по размеру и временной отметке. Проблема решается установкой флажка напротив соответствующей опции в настройках. Набор доступных колонок весьма ограничен: размер, дата модификации и разрешения. Хотя и можно воспользоваться файловым фильтром, просмотр длинного списка файлов все равно превращается в рутинный процесс: нельзя мгновенно остановить сканирование, свернуть дерево файлов, быстро переместиться к нужным элементам. Разработчикам будет интересен третий режим работы приложения — Version Control View. Meld поддерживает интерфейс командной строки, поэтому предусмотрена интеграция со средами Git, Bazaar, Mercurial, Subversion и многим другими.Meld представлен для большинства Linux дистрибутивов (Ubuntu, Suse, Fedora и др.), и присутствует в их основных репозиториях.
Плюсы и минусы программы Meld
Резюме
Программа Meld зарекомендовала себя с хорошей стороны в среде Linux, чего нельзя сказать о функционировании в Windows. Нестабильная работа и неудобный интерфейс, отсутствие сессий, недостаточная гибкость настройки. С другой стороны, инструментарий программы неплох, а качественная адаптация Meld для Windows, возможно, лишь вопрос времени. [Источник 2]
Обзор Meld
Функции программы Meld
Принцип работы программы Meld
Итак начнём с diff-а. Первое что стоит сделать это посмотреть документацию у meld: «meld –help», из которой узнаём, что достаточно передать ему, в качестве параметров, 2 пути к сравниваемым файлам или директориям. Теперь разберёмся с git, опять пойдём в документацию и вытащим из неё вот такие пару строк для git config:
Ну или для Windows вот так:
Всё, теперь можно посмотреть например разницу между локальными изменениями и версиями файлов в HEAD, запустив:
Чуть улучшить результат можно вот так:
Теперь meld будет открывать не каждый файл по очереди, а покажет сразу все изменения, которые мы запросили в виде сравнения двух директорий. Что бы не писать такую большую команду каждый раз, git даёт нам возможность настроить алиасы:
Теперь разницу между мастером и branch1, можно посмотреть вот так:
Для мержа всё не сильно сложнее, опять смотрим справку по meld, там пишут что нужно в качестве параметров указать 3 файла и в параметре «–output» указать какой из них использовать для сохранения результата. Для git тоже обратимся к документации и получим вот это:
з незнакомых опций тут следующие:
Ну и запуск, с учётом алиасов, выглядит вот так:
Git в ответ будет последовательно открывать meld для каждого конфликта в режиме 3-х стороннего мёржа. [Источник 4] Всё вместе это выглядит вот так:
Как сравнить файлы и папки
Установка Meld в Windows
2) GTK+ All-in-one bundle:
3) Python gnome bindings:
7) Download meld source code:
8) Add this to your Path:
Теперь, если запустить python, указав путь к Meld’у (c:\dev\meld\meld-1.3.1\meld) в качестве параметра, должно открыться окно Meld’а. [Источник 5]
Чем сравнить две директории в Linux? С помощью Diff и Meld Tools
Для тех пользователей линукс мира, у кого как и у меня, время от времени возникает необходимость сравнения файлов и директорий, решил написать эту небольшую статью, о двух прекрасных, на мой взгляд, утилитах — утилита командной строки diff и утилита с графическим Meld Tools. Опережая реакцию неосиляторов и не желающих разбираться самостоятельно, ответственно заявляю, эта статья лишь ознакомительная, и не претендует на роль мануала, посему не буду подробно расписывать как сравнивать файлы и директории в Diff и Meld, тем более они имеют, на мой взгляд, интуитивно понятный интерфейс, разобраться в котором сможет даже бабушка, ну или дедушка. К слову сказать, в настоящее время у меня есть очень явный пример того, что линукс в целом и информационные технологии, в частности, всем возрастам покорны. В Manjaro группе в телеграмме, есть у нас товарищ, ему 61 год, с компьютером он познакомился в 55 лет, ныне пенсионер и всю жизнь проработал шахтёром. Так вот от него вопросов по настройке и помощи в линуксе слышно меньше, чем от 20-25 летних юнцов.
Что-то я ушёл от темы. Итак, обычно для того, чтобы сравнить два файла в Linux, я использую
. Если честно пользуюсь ей я ни потому, что я прям вот обожаю до ужаса этот волшебный мир консоли хотя да, он великолепен, а потому что diff есть «из коробки»в большинстве, если во всех дистрибутивах Linux, и если возникает необходимость сравнения файлов на чужом компьютере, то легче всего открыть терминал и использовать diff.
Так выглядит её интерфейс
Как я написал выше, разберется в нём и стар и млад, учиться никогда не поздно. Благо в линуксе каждый найдёт для себя то, что ему нравится, кто-то фанатеет от консольки и работает только в ней, кто-то любит графические интерфейсы. Если у кого то возникнут вопросы, не стесняйтесь спрашивайте в комментариях всегда открыт к диалогу.
Сравнение файлов в Linux
Иногда возникает необходимость сравнить несколько файлов между собой. Это может понадобиться при анализе разницы между несколькими версиями конфигурационного файла или просто для сравнения различных файлов. В Linux для этого есть несколько утилит, как для работы через терминал, так и в графическом интерфейсе.
В этой статье мы рассмотрим как выполняется сравнение файлов Linux. Разберем самые полезные способы, как для терминала, так и в графическом режиме. Сначала рассмотрим как выполнять сравнение файла linux с помощью утилиты diff.
Сравнение файлов diff
$ diff опции файл1 файл2
Можно передать больше двух файлов, если это нужно. Перед тем как перейти к примерам, давайте рассмотрим опции утилиты:
Это были основные опции утилиты, теперь давайте рассмотрим как сравнить файлы Linux. В выводе утилиты кроме, непосредственно, отображения изменений, выводит строку в которой указывается в какой строчке и что было сделано. Для этого используются такие символы:
Вот содержимое наших тестовых файлов:
Теперь давайте выполним сравнение файлов diff:
В результате мы получим строчку: 2,3c2,4. Она означает, что строки 2 и 3 были изменены. Вы можете использовать опции для игнорирования регистра:
Можно сделать вывод в две колонки:
Для удобства, вы можете перенаправить вывод утилиты сразу в файл:
Как видите, все очень просто. Но не очень удобно. Более приятно использовать графические инструменты.
Сравнение файлов Linux с помощью GUI
Существует несколько отличных инструментов для сравнения файлов в linux в графическом интерфейсе. Вы без труда разберетесь как их использовать. Давайте рассмотрим несколько из них:
1. Kompare
2. Meld
Это легкий инструмент для сравнения и объединения файлов. Он позволяет сравнивать файлы, каталоги, а также выполнять функции системы контроля версий. Программа создана для разработчиков и позволяет сравнивать до трёх файлов. Можно сравнивать каталоги и автоматически объединять сравниваемые файлы. Кроме того поддерживаются такие системы контроля версий, как Git.
3. Diffuse
4. KDiff3
5. TkDiff
Это очень простая утилита для сравнения файлов написанная на основе библиотеки tk. Она позволяет сравнивать только два файла, поддерживает поиск и редактирование сравниваемых файлов.
Выводы
В этой статье мы рассмотрели как выполняется сравнение файлов linux с помощью терминала, как создавать патчи, а также сделали небольшой обзор лучших графических утилит для сравнения файлов. А какие инструменты для сравнения используете вы? Напишите в комментариях!