Получение кода выхода 255 при попытке запуска diffmerge из SVN
Я пытаюсь интегрировать DiffMerge с svn (версия 1.6.16) на снежном барсе, следуя инструкциям, приведенным здесь. Я сделал следующие изменения:
1) Создан скрипт, который выглядит так:
#!/bin/bash
DIFFMERGE_PATH=/Applications/DiffMerge/DiffMerge.app
DIFFMERGE_EXEC=${DIFFMERGE_PATH}/Contents/MacOS/DiffMerge
${DIFFMERGE_EXEC} --nosplash -m -t1="Incoming" -t2="Original" -t3="Current" -r="$4" "$2" "$1" "$3"
2) Ран chmod +x ~/Scripts/diffmerge-svnmerge.sh
3) Добавлена следующая команда в файл ~/.subversion/config:
merge-tool-cmd = <HOME>/Scripts/diffmerge-svnmerge.sh
4) Для целей тестирования я удостоверился, что при попытке обновить файл возник конфликт, и использовал опцию 'l', чтобы запустить DiffMerge для разрешения конфликта. Я получаю следующее сообщение об ошибке каждый раз: The external merge tool exited with exit code 255
Есть идеи, что я делаю не так?
Спасибо!
2 ответа
Это сработало для меня (Subversion 1.7.5)
#!/bin/bash
DIFFMERGE_PATH=/Applications/DiffMerge.app
DIFFMERGE_EXEC=${DIFFMERGE_PATH}/Contents/MacOS/DiffMerge
DIFFMERGE_ARGS=()
COLCOUNT=1
for I in "$@"; do
case "${I}" in
"-E")
;;
"-L")
DIFFMERGE_ARGS[${#DIFFMERGE_ARGS[*]}]="-t${COLCOUNT}"
COLCOUNT=$((${COLCOUNT}+1))
;;
*)
DIFFMERGE_ARGS[${#DIFFMERGE_ARGS[*]}]="${I}"
;;
esac
echo "Arg: ${I}" >> /Users/kosh/tmp/diffmerge.cmd
done
${DIFFMERGE_EXEC} --nosplash "${DIFFMERGE_ARGS[@]}"
exit ${?}
Код выхода 255, кажется, происходит, когда путь не найден. Для меня это также произошло при использовании пути ~/ (тильда) к моему внешнему инструменту сравнения. Я использую IntelliJ's idea merge