[SVN] external diff with directories tree
От: kamre Россия  
Дата: 11.03.11 07:27
Оценка:
Умеет ли svn показывать diff через внешние утилиты вроде Araxis Merge?

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

Когда работал с hg, нужно было только прописать

[extdiff]
cmd.amdiff = C:\Program Files\Araxis\Araxis Merge\Merge.exe


и все работало как нужно.
Re: [SVN] external diff with directories tree
От: quodum  
Дата: 11.03.11 12:12
Оценка:
Здравствуйте, kamre, Вы писали:

K>Умеет ли svn показывать diff через внешние утилиты вроде Araxis Merge?


K>Попытался настроить как описано вот здесь, но оно каждый раз по одному файлу показывает, это не юзабельно вообще. Нужно чтобы сразу для всего дерева директорий показывало в Araxis, как это сделать?


Можно сделать для черепахи:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\TortoiseDiff\Command]
@="\"C:\\Program Files\\TortoiseSVN\\bin\\TortoiseProc.exe\" /command:diff /path:\"%1\""


(путь, естественно, надо поправить в соответствии с реальностью).

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

Для команднострочного клиента можно написать скрипт для использования вместо сравнивалки, который будет запоминать передаваемые ему параметры списком в укромном месте (и складировать там же сами файлы), а когда его перестанут дёргать -- по таймауту открывать сравнивалку согласно этому списку. Только нужна сравнивалка, которая умеет работать со списком произвольных пар файлов, а не просто с двумя поддеревьями файловой системы. Я таким извращением развлекался, даже почти довёл его до ума, причём реализовывал в терминах бат-файлов , но потом поставил черепаху и плюнул. Оставил гуёвый дифф через гуи (черепаху), а в консоли -- текстовый дифф.
Re[2]: [SVN] external diff with directories tree
От: kamre Россия  
Дата: 11.03.11 12:32
Оценка:
Здравствуйте, quodum, Вы писали:

Q>Можно сделать для черепахи:


Q>
Windows Registry Editor Version 5.00

Q>[HKEY_CLASSES_ROOT\Folder\shell\TortoiseDiff\Command]
Q>@="\"C:\\Program Files\\TortoiseSVN\\bin\\TortoiseProc.exe\" /command:diff /path:\"%1\""
Q>


Q>(путь, естественно, надо поправить в соответствии с реальностью).


Q>В контекстном меню любой папки появится пункт TortoiseDiff, который будет открывать окошко со списком изменённых файлов, для каждого из которых можно вызвать зарегистрированную в черепахе сравнивалку (а уже там можно прописать араксис или бейонд компарь или ещё кого).


Не пользуюсь ни Tortoise, ни Explorer. Да и список измененных файлов тоже не очень, удобно видеть слева дерево директорий и справа как это отображается при сравнении директорий в Araxis.

Q>Для команднострочного клиента можно написать скрипт для использования вместо сравнивалки, который будет запоминать передаваемые ему параметры списком в укромном месте (и складировать там же сами файлы), а когда его перестанут дёргать -- по таймауту открывать сравнивалку согласно этому списку. Только нужна сравнивалка, которая умеет работать со списком произвольных пар файлов, а не просто с двумя поддеревьями файловой системы. Я таким извращением развлекался, даже почти довёл его до ума, причём реализовывал в терминах бат-файлов , но потом поставил черепаху и плюнул. Оставил гуёвый дифф через гуи (черепаху), а в консоли -- текстовый дифф.


В hg external diff создает в %TEMP% две директории и на них запускается Araxis, надеялся тоже самое и для svn получить. А самому писать для этого скрипты — изврат какой-то... Элементарная же вроде вещь для scm. А Tortoise не умеет эти директории создавать, только списком файлы предлагает?
Re[3]: [SVN] external diff with directories tree
От: quodum  
Дата: 11.03.11 12:38
Оценка:
Здравствуйте, kamre, Вы писали:

K>В hg external diff создает в %TEMP% две директории и на них запускается Araxis, надеялся тоже самое и для svn получить. А самому писать для этого скрипты — изврат какой-то... Элементарная же вроде вещь для scm. А Tortoise не умеет эти директории создавать, только списком файлы предлагает?


Не умеет, насколько я знаю.
Re[2]: [SVN] external diff with directories tree
От: Danchik Украина  
Дата: 11.03.11 12:38
Оценка: +1
Здравствуйте, quodum, Вы писали:

Q>Здравствуйте, kamre, Вы писали:


K>>Умеет ли svn показывать diff через внешние утилиты вроде Araxis Merge?


K>>Попытался настроить как описано вот здесь, но оно каждый раз по одному файлу показывает, это не юзабельно вообще. Нужно чтобы сразу для всего дерева директорий показывало в Araxis, как это сделать?


Q>Можно сделать для черепахи:


Q>[HKEY_CLASSES_ROOT\Folder\shell\TortoiseDiff\Command]

Q>@="\"C:\\Program Files\\TortoiseSVN\\bin\\TortoiseProc.exe\" /command:diff /path:\"%1\""
Q>

Зачем так через ж..у??
Есть же в настроечном окне External Programs\Diff Viewer
C:\Program Files (x86)\Araxis\Araxis Merge\compare.exe /max

И для мержа: External Programs\Merge Tool
C:\Program Files (x86)\Araxis\Araxis Merge\compare.exe /a2 /max /wait /3 /title1:%tname /title2:%bname /title3:%yname %theirs %base %mine %merged
Re[3]: [SVN] external diff with directories tree
От: quodum  
Дата: 11.03.11 12:50
Оценка: 10 (1)
Здравствуйте, Danchik, Вы писали:

D>Зачем так через ж..у??

Затем, что такой уж весь инструментарий SVN.

D>Есть же в настроечном окне External Programs\Diff Viewer


Это обязательно, но недостаточно для того, чтобы получить графический дифф по поддереву. Для последнего нужно звать TortoiseProc. Команду контекстного меню diff же черепаха сама вешает только на файлы, а на каталоги приходится добавлять руками.
Re: [SVN] external diff with directories tree
От: Mr.Cat  
Дата: 11.03.11 14:36
Оценка:
Здравствуйте, kamre, Вы писали:
K>здесь
Не, это, насколько я помню, вовсе не то. Эти опции вообще отключают встроенный svn-овский движок диффа/мержа и вместо этого используют указанный. Тебе же просто надо заменить черепаховские diff и check for modifications на свои.
Мне кажется, quodum наиболее правильный вариант предлагает.
Re: [SVN] external diff with directories tree
От: byleas  
Дата: 22.03.11 17:38
Оценка:
Здравствуйте, kamre, Вы писали:

K>Умеет ли svn показывать diff через внешние утилиты вроде Araxis Merge?

Не оно?

config:

### Section for configuring external helper applications.
[helpers]
diff-cmd = C:\Program Files\Araxis\Merge\AraxisSVNDiff.exe
Re[2]: [SVN] external diff with directories tree
От: kamre Россия  
Дата: 20.06.11 08:27
Оценка:
Здравствуйте, byleas, Вы писали:

K>>Умеет ли svn показывать diff через внешние утилиты вроде Araxis Merge?

B>Не оно?

B>config:


B>### Section for configuring external helper applications.

B>[helpers]
B>diff-cmd = C:\Program Files\Araxis\Merge\AraxisSVNDiff.exe


Не работает такое: опять дофига вкладок открывает и никакого diff для дерева директорий не делается.

Нашел, что можно напрямую с ревизией из репозитория сравнение запускать: http://www.araxis.com/merge_mac/topic_plugin_subversion.html Но это уже не локальная операция получается и работает очень долго. Нужно как-то сравнить с base revision из того, что в .svn директориях хранится, чтобы работало также быстро как и svn diff. Умеет так сравнивать Araxis?


P.S. Решил вернуться к этому вопросу. До этого довольствовался простомтром diff в Subversive плагине, но после реорганизации директорий в проекте стало видно не все изменения в Subversive.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.