Как использовать 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
:
Как вы можете видеть, я назвал свой файл летучей мыши "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