Визуальные инструменты сравнения и сравнения SVN для Linux - PullRequest
25 голосов
/ 17 июля 2009

Какой лучший дисплей SVN Diff для Linux.

BeyondCompare и VisualSVN 1.5 хорошо работают в Windows. Каковы эквивалентные инструменты для Linux? (В частности, Ubuntu).

Я знаю, что командная строка diff работает; Но я бы хотел выделить синтаксис нескольких столбцов и отличия.

Лучше, если инструмент поддерживает Git и Hg.

Ответы [ 12 ]

42 голосов
/ 17 июля 2009

Я использовал meld для этой цели, в Ubuntu вы можете просто сделать:

apt-get install meld

Я думаю, что это только двустороннее сравнение, но, как правило, это только то, что вам нужно, и только то, что вам показывает различие.

Когда вы получаете конфликт с использованием SVN и должны выполнить слияние, вы обычно получаете 4 файла AFAIR.

  • file.mine - файл с вашими локальными изменениями, как и до обновления svn.
  • file.r - Редакция, в которой вы создали локальные изменения.
  • file.r - ревизия, которую вы обновили с svn, обычно HEAD.
  • файл - Subversions пытается объединить ваши изменения в обновленный файл.

Таким образом, чтобы использовать объединение ваших изменений, вы должны сделать:

meld file.mine file.<n+m>

И объедините ваши изменения с ревизией, обновленной из svn, или наоборот. Обычно легче объединить файл с наименьшим количеством изменений в файле с большинством изменений.

И, наконец, вы переопределите файл с объединенным файлом и выполните:

svn resolved file
8 голосов
/ 17 июля 2009

Diffuse поддерживает Subversion, Mercurial, Git и некоторые другие системы контроля версий. Работает и на Windows тоже. Для Ubuntu просто установите пакет .deb с "$ sudo dpkg -i diffuse - *. Deb" и затем запустите "diffuse -m", чтобы просмотреть ваши изменения или исправить конфликты слияния.

7 голосов
/ 17 июля 2009

Beyond Compare также поддерживает Linux. Если вы уже любите BC для Windows, я бы сказал, победите.

6 голосов
/ 17 июля 2009

Примечание: если ваш diff-инструмент имеет CLI (интерфейс командной строки), его можно легко интегрировать с Git как для diff, так и для слияния (если он поддерживает 3-way merge ).
Начиная с Git1.6.3, опции difftool - mergetool позволяют интегрировать эту программу сравнения (см. " Как просмотреть вывод 'git diff' с программой визуального различия? ").

Например,

KDiff3 является хорошим кандидатом для этого, поскольку он даже автоматически обнаруживается Git .

2 голосов
/ 17 июля 2009

KDiff3 очень хорош (я также использую его на Windows). Работает как для сравнения, так и для слияния.

1 голос
/ 01 октября 2010

Вы можете попробовать xd http://github.com/jiqingtang/xd,, который является оболочкой GUI для diff GIT / SVN. Это не инструмент сравнения. Вы запускаете «xd», когда хотите запустить «git diff» или «svn diff», и он покажет вам список файлов, окно предварительного просмотра и вы можете запустить любой инструмент сравнения, который вам нравится, включая tkdiff, xxdiff, gvimdiff, emacs (ediff), xemacs (ediff), meld, diffuse, kompare и kdiff3. Вы также можете запустить любой пользовательский инструмент.

1 голос
/ 06 мая 2010

Ну, а кто-нибудь еще пробовал DiffMerge? Если нет, то я рекомендую всем это сделать. Если вы использовали WinMerge для Windows, то вы найдете это как отличную альтернативу WinMerge для Ubuntu / Linux.

Попробуйте следующую сеть для деталей: http://www.webtechquery.com/index.php/2010/05/free-diff-tools-ubuntu-linux-windows/

Спасибо

1 голос
/ 17 июля 2009

Я использую Vim's diff mode для этого. С помощью плагина vcscommand вы можете просто набрать :VCSDiff, чтобы перейти в режим сравнения текущего файла с его историей.

1 голос
/ 17 июля 2009

А как насчет kdiff (особенно если вы используете KDE) Или, если у вас есть IDE (например, Eclipse / NetBeans), она не предоставляет функции, связанные с SVN?

(я лично использую Eclipse PDT для PHP; это плагин Subversive для SVN)

1 голос
/ 17 июля 2009

Я много использовал SlickEdit в Linux. Он имеет довольно хороший интегрированный просмотрщик / редактор diff. Он работает с SVN, CVS и парой других репозиториев контроля версий.

...