Ответ 1
Это помогло мне использовать msysGit для Windows 7:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge $BASE $LOCAL $REMOTE $MERGED'
Не знаю, почему, но цитаты, ввернутые для меня.
Я пытаюсь использовать p4merge с git, но получаю:
Ошибка при запуске p4merge: "path/myFile" (или указывает на) недопустимый файл (в нем перечислены BASE, LOCAL, REMOTE и стандартная версия файла).
Git рассказывает мне о конфликте, тогда он спрашивает, хочу ли я начать настройку mergetool (p4merge), а затем я получу ошибку выше.
Примечание: это происходит с любым файлом!
Любая подсказка о том, что это такое и как его исправить?
Это помогло мне использовать msysGit для Windows 7:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge $BASE $LOCAL $REMOTE $MERGED'
Не знаю, почему, но цитаты, ввернутые для меня.
Вы увидите мою конфигурацию для DiffMerge или KDiff3.
Исходя из этого, я бы рекомендовал для p4merge:
git config --global merge.tool merge
git config --global mergetool.merge.cmd "merge.sh \"$PWD/$LOCAL\" \"$PWD/$BASE\" \"$PWD/$REMOTE\" \"$PWD/$MERGED\""
и merge.sh
- это оболочка (скопированная в каталог, на который ссылается ваша переменная среды PATH
), способная учитывать случай, когда no BASE
существует.
(когда файл создается в двух разных ветвях, которые затем объединяются, не было бы общего предка для этого файла)
#!/bin/sh
# Passing the following parameters to mergetool:
# local base remote merge_result
alocal=$1
base=$2
remote=$3
result=$4
if [ -f $base ]
then
p4merge.exe -dl "$base" "$alocal" "$remote" "$result"
else
p4merge.exe -dl "$result" "$alocal" "$remote" "$result"
fi
Вы можете отметить:
PWD
в конфигурации слиянияmerge
" в качестве имени имени merge.tool(так как фактический инструмент вызывается в merge.sh
script, где вы можете переключаться между любым количеством требуемого инструмента слияния)$base
, $alocal
, $remote
, $result
в scriptПросто протестировал его (оказывается, вы можете загрузить и установить только p4merge - раздел Client/Visual Merge Tool - даже если у вас нет другого продукта P4).
С настройками, описанными выше, MSysGit1.6.3, сеансом DOS или сеансом Git bash:
Он просто работает TM.
Обновить msysgit 1.7.x
Benjol упоминается в комментариях:
p4merge теперь поддерживается из-за msysgit.
Это означает, что вы можете просто сделать:
git config --global merge.tool p4merge
# and I recommend
git config --global mergetool.keepBackup false