Можно ли использовать инструмент IntelliJ Diff в SourceTree? Я знаю, что он доступен из терминала.
Спасибо
Можно ли использовать инструмент IntelliJ Diff в SourceTree? Я знаю, что он доступен из терминала.
Спасибо
Пришло время выяснить аргументы.
Текстовое поле команды Diff должно содержать путь к intellij, например: /Applications/IntelliJ\ IDEA\ 12.app/Contents/MacOS/idea
Для OSX Android Studio я выполнил следующие шаги:
Откройте IntelliJ/Android Studio → Инструменты → Создать панель запуска командной строки
После этого откройте "Настройки SourceTree": и введите "/usr/local/bin/studio" в команду " Дифферсия/объединение". Как это:
Различные аргументы:
diff $LOCAL $PWD/$REMOTE
Аргументы слияния:
merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$BASE $PWD/$MERGED
И если все нормально, это должно работать.
Окна
Команда Diff: C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.1.2\bin\idea.exe
Аргументы: diff $LOCAL $PWD/$REMOTE
Команда слияния: C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.1.2\bin\idea.exe
Аргументы: (Это не работает для меня. У меня проблемы с путаницей.) merge $LOCAL $PWD/$REMOTE $PWD/$BASE $MERGED
Начиная с 12.1, это аргументы для использования инструментов IntelliJ diff и merge извне программы:
Инструмент Diff <path to IntelliJ IDEA launcher> diff <path to file1> <path to file2>
Инструмент слияния <path to IntelliJ IDEA launcher> merge <path to file1> <path to file2> <path to file3> <path to output>
ОФИЦИАЛЬНАЯ ДОКУМЕНТАЦИЯ: run-intellij-idea-as-a-diff-or-merge-command-line-tool
FWIW, я закончил использование IntelliJ для моего источника управления. Мне нравится больше, чем Сурсетри. Он достаточно прочен.
Если кто-то заинтересован в настройках Android Studio в Mac:
<path to IntelliJ IDEA launcher>:
/Applications/Android\ Studio.app/Contents/MacOS/studio
Diff tool
<path to IntelliJ IDEA launcher> diff <path to file1> <path to file2>
Merge tool
<path to IntelliJ IDEA launcher> merge <path to file1> <path to file2> <path to file3> <path to output>
Единственная проблема, которую я замечаю, заключается в том, что Android Studio не может отображать более одного раза одновременно. Когда я пытаюсь, он жалуется, что файл не может быть показан
На Mac с intellij 2016
diff $LOCAL $PWD/$REMOTE
merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$BASE $PWD/$MERGED
На сегодня (январь 2019 года) он работает на окнах, как это:
Внешний Diff/Merge:
Инструмент Diff:
Diff Command: C:\Program Files\JetBrains\WebStorm 2018.3.1\bin\webstorm64.exe
Agruments: diff $LOCAL $REMOTE
Инструмент слияния:
Diff Command: C:\Program Files\JetBrains\WebStorm 2018.3.1\bin\webstorm64.exe
Agruments: merge $LOCAL $REMOTE $BASE $MERGED
Для инструмента слияния в окнах эти аргументы работают для меня:
merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$MERGED
Недавно я обнаружил более удобный способ использования IntelliJ Diff Tool без каких-либо настроек.
Этот способ работает отлично.
В macOS с IntelliJ IDEA CE.
Команда Diff: open
Аргументы: -W -b com.jetbrains.intellij.ce --args diff "$LOCAL" "$PWD/$REMOTE"
Где:
open
: Системная команда для открытия файлов и каталогов.-W
: вызывает open
до тех пор, пока не откроются открытые приложения (или уже открытые).-b com.jetbrains.intellij.ce
: идентификатор пакета для приложения, используемого при открытии файла.--args
: все остальные аргументы передаются открытому приложению в параметре argv
на main()
.Как упоминалось в @Shad, IntelliJ не может выполнять diff/merge в Windows, потому что временные файлы еще не созданы.
Обходной путь заключается в создании файла delayed-intellij.bat
следующим образом:
ping 127.0.0.1 -n 2 > nul
"C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.1\bin\idea64.exe" %*
Затем используйте этот файл в Sourcetree: C:\temp\idea64-delayed.bat
, и он запустит инструмент слияния с небольшой задержкой.
Используя PHPStorm 2013 в Windows и Sourcetree> 2.4, мне пришлось скрыть аргументы и добавить полный путь к параметрам слияния.
Команда Diff/Merge:
C:\Program Files\JetBrains\PhpStorm 2017.3.6\bin\phpstorm64.exe
аргументы diff:
diff \"$LOCAL\" \"$REMOTE\"
аргументы слияния:
merge \"$PWD/$LOCAL\" \"$PWD/$REMOTE\" \"$PWD/$MERGED\"
merge \"$PWD/$LOCAL\" \"$PWD/$REMOTE\" \"$PWD/$BASE\" \"$PWD/$MERGED\"
Получил IntelliJ для работы в качестве инструмента сравнения и слияния SourceTree с
используя
Команда Diff: open
Аргументы: -W -b com.jetbrains.intellij.ce --args diff "$LOCAL" "$PWD/$REMOTE"
Инструмент слияния: open
Аргументы: -W -b com.jetbrains.intellij.ce --args merge "$PWD/$LOCAL" "$PWD/$REMOTE" "$PWD/$BASE" "$PWD/$MERGED"
на SourceTree > Preferences > Diff
.
Смотрите https://i.stack.imgur.com/YEQEV.png для скриншота.
Надеюсь, это кому-нибудь поможет :-)