Как использовать TortoiseMerge из Perforce P4V?

Как я могу настроить Perforce для использования инструмента TortoiseMerge для сравнения и слияния?


Я попробовал аргументы

/base:%1 /mine:%2

следующие http://tortoisesvn.net/docs/release/TortoiseMerge_en/tme-automation.html и http://www.perforce.com/perforce/doc.current/manuals/p4v/Configuring_display_preferences.html. Документы Perforce говорят

Укажите аргументы для сторонних приложений сравнения в поле "Аргументы": введите%1 для имени первого файла и%2 для имени второго файла. P4V заменяет эти заполнители фактическими именами файлов при вызове приложения diff.

Тем не менее, когда я пытаюсь это сделать, TortoiseMerge выдает ошибку "Не удается открыть файл%1", предполагая, что P4V не заменил аргументы и оставил %1 как есть

3 ответа

Решение

К сожалению, замена аргумента P4V сломана. Вы можете использовать TortoiseMerge для диффузии, но не для слияния.

Чтобы настроить TortoiseMerge для сравнения, используйте строку аргумента %1 %2

Правильные аргументы для слияния будут

/base:%b /theirs:%1 /mine:%2 /merged:%r

Однако это дает эту ошибку

Предположительно, происходит то, что P4V не может заменить "%b" в /base:%b с соответствующим путем к файлу.

Вы можете сделать это, создав файл bat. В файле bat вы можете вызвать программу слияния с правильными аргументами. Это содержимое моего файла bat:

TortoiseMerge.exe /base:%1 /theirs:%2 /mine:%3 /merged:%4

Настройки в p4 %b %1 %2 %r:Настройки в P4

Как вы можете видеть, я назвал свой файл летучей мыши "p4Helper.bat"

Существует существующий запрос на улучшение, потому что P4V не заменяет значения для%b, %1, %2 и% r, если эти аргументы не являются сами по себе. Например, P4V не заменяет:

 /base:%b /theirs:%1 /mine:%2 /merged:%r

которые нужны TortoiseMerge.

Однако один пользователь сообщил, что команда сработала, как только он добавил кавычки вокруг имени пути из-за пробелов в нем. Например:

start / WAIT "C: / Program Files / Beyond Compare 3 / BComp.exe"% 1% 2% 3 / mergeoutput =% 4

Таким образом, в качестве обходного пути вы можете увеличить аргументы%b %1 %2 %r в скрипте, который вызывает TortoiseMerge. В случае TortoiseMerge у вас будет такая строка:

 c:"\the_path_to_TortoiseMerge" /base:%1 /theirs:%2 /mine:%3 /merged:%4
Другие вопросы по тегам