Kdiff3 FSPathMakeRef (app_path_location) завершился ошибкой -43 Mac OS-X

Я пытаюсь открыть kdiff3 с терминала и передать два локальных файла в качестве аргумента kdiff3 (не в репозитории git). Kdiff3 Я использую как инструмент git diff, который отлично работает для сравнения моей текущей версии и версии репо. Однако проблема возникает, когда я запускаю kdiff3 с локальным файлом (не в репозитории git) в качестве аргумента с терминала, тогда я получаю сообщение об ошибке, в котором говорится, что FSPathMakeRef(local_kdiff_path/kdiff3.app ) failed with error -43. FYI, расположение пути kdiff3.app точно такое же, как я определяю для инструмента git diff или псевдоним. Я пробовал двумя способами, но ни один из них не работает:

alias kd2='open -a "local_kdiff_path/kdiff3.app" $1 $2'
alias kd3='sudo open -a "local_kdiff_path/kdiff3.app/Contents/MacOS/kdiff3" $1 $2'

Подскажите, пожалуйста, как я могу решить эту проблему?


person J4cK    schedule 18.11.2015    source источник


Ответы (1)


Проблема в том, что путь, указанный вами в bash script или .bash_profile, не может найти местоположение приложения. Несмотря на то, что аргумент легко доступен в Linux или Windows, но для Mac сценарий немного отличается.

Решение для MAC OS-X

Создайте простой сценарий bash следующим образом и укажите аргументы

kdiff_installed_folder/kdiff3.app/Contents/MacOS/kdiff3 "$1" "$2" "$4"

Решение для Linux

Добавьте следующие команды в файл .bashrc или .aliases

alias kd '/app/kdiff3/0.9.96/RHEL64/kdiff3'
alias kd1 '/app/kdiff3/0.9.96/RHEL64/kdiff3 $1' 
alias kd2 '/app/kdiff3/0.9.96/RHEL64/kdiff3 $1 $2' 

Решение для Windows

Если вы устанавливаете Git-bash, добавьте следующую строку в файл .bashrc

alias kd='"C:/Program Files/KDiff3/kdiff3.exe"'
alias kd1='"C:/Program Files/KDiff3/kdiff3.exe" $1'
alias kd2='"C:/Program Files/KDiff3/kdiff3.exe" $1 $2'
person J4cK    schedule 24.11.2015