Проблема обратной косой черты в GitConfig IntelliJ mergetool и difftool - PullRequest
0 голосов
/ 16 ноября 2018

В настоящее время у меня есть C:\Users\me\.gitconfig следующее содержимое

[merge]
    tool = intellij
[mergetool "intellij"]
    cmd = cmd.exe //c "\"C:/Program Files/JetBrains/IntelliJ IDEA 2018.1.5/bin/idea.bat\" merge \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""
    trustExitCode = true
[diff]
    tool = intellij
[difftool "intellij"]
    cmd = cmd.exe //c "\"C:/Program Files/JetBrains/IntelliJ IDEA 2018.1.5/bin/idea.bat\" diff \"$LOCAL\" \"$REMOTE\""

и когда я делаю git difftool, я получаю

'C:/Program' is not recognized as an internal or external command,
operable program or batch file.

В [Git Docs] упоминается, что

Следующие escape-последовательности (кроме \ "и \) распознаются: \ n для символа новой строки (NL), \ t для горизонтальной табуляции (HT, TAB) и \ b для возврата (BS). Другие последовательности выхода символов (включая восьмеричные) escape-последовательности) недопустимы.

Я также посмотрел на Синтаксис для указания путей Windows и попробовал несколько комбинаций:

# Escape spaces
Program\\ Files
Program/ Files
Program\ Files

# Backslashes
C:\Program Files\...
# 'C:\Program' is not recognized

Но никто не сработал, как правильно это сделать?

1 Ответ

0 голосов
/ 16 ноября 2018

Один способ проверить синтаксис Unix

cmd = "/C/Program Files/JetBrains/IntelliJ IDEA 2018.1.5/bin/idea.bat"...

Другой вариант - добавить C:/Program Files/JetBrains/IntelliJ IDEA 2018.1.5/bin к %PATH%, что позволит вам напрямую ссылаться на файл bat.

cmd = cmd.exe /c idea.bat ...
...