Mercurial: extdiff делает ненужный снимок рабочего каталога? - PullRequest
4 голосов
/ 20 июля 2010

Вот что у меня есть в моем Mercurial.ini ...

[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp = /leftreadonly 

Итак, расширение extdiff работает нормально за исключением , что даже когда одна сторона сравнения - моя работакаталог, как в случае, когда я даю только один аргумент ревизии, например, hg bcomp -r 25, чтобы получить разность между rev25 и рабочим каталогом, это заставляет мой инструмент сравнения, в данном случае BC3, открыть сеанс сравнения папок, сравнивая снимокот rev25 до снимка рабочего каталога, такого как ...

left:  C:\Windows\Temp\extdiff.v20d13s\MyCode\ 
right: C:\Windows\Temp\extdiff.q78g269\MyCode\ 

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

Ответы [ 3 ]

5 голосов
/ 20 июля 2010

Я никогда не находил способ запретить extdiff копировать измененные файлы в каталог Temp, но если ваш diff-инструмент позволяет редактировать на месте, тогда Mercurial скопирует измененные файлы обратно в рабочий каталог, когда вы выход инструмент.

Например, используя Beyond Compare, это соответствующий фрагмент из моего Mercurial.ini:

[extdiff]
cmd.bcomp = C:\Program Files\Beyond Compare 3\BCompare.exe
opts.bcomp =/expandall /solo /lro
0 голосов
/ 30 октября 2010

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

Вот почему, если вы сделаете hg bcomp <file1> -r<rev>, вы действительно увидите рабочую копию, потому что есть только один файл для сравнения.

@ Ответ Найла Си великолепен, но если вам неудобно менять временные файлы, или ваш инструмент сравнения не такой крутой, как bcomp, написать немного не сложно расширение для копирования файлов из набора изменений нерабочей копии во временный каталог, как это делает extdiff, а затем вызовите инструмент сравнения между временным каталогом и рабочим каталогом.

0 голосов
/ 20 июля 2010

Я НЕ эксперт в Mercurial, но у меня также есть некоторые проблемы с extdiff, и я МОЖЕТ случайно найти ответ на ваш вопрос, пытаясь выяснить мой. Я также могу быть совершенно не прав. ; -)

В любом случае, мне кажется, что если вы явно предоставите номер версии для сравнения, extdiff сделает снимок обеих версий, которые вы пытаетесь сравнить (даже если вы не указали ОБА стороны DIFF; не указано сторона является неявно рабочим каталогом).

Единственный способ заставить extdiff просто работать с рабочим каталогом - не указывать версию для сравнения (я полагаю, это работает не по совету?).

Извините, я не очень помог вам. Надеюсь, вы найдете свой ответ!

...