Инструмент IntelliJ Diff в SourceTree - программирование
Подтвердить что ты не робот

Инструмент IntelliJ Diff в SourceTree

Можно ли использовать инструмент IntelliJ Diff в SourceTree? Я знаю, что он доступен из терминала.

Спасибо

4b9b3361

Ответ 1

Пришло время выяснить аргументы. Текстовое поле команды Diff должно содержать путь к intellij, например: /Applications/IntelliJ\ IDEA\ 12.app/Contents/MacOS/idea

enter image description here

Ответ 2

Для OSX Android Studio я выполнил следующие шаги:

Откройте IntelliJ/Android Studio → Инструменты → Создать панель запуска командной строки

Something like this:

После этого откройте "Настройки SourceTree": и введите "/usr/local/bin/studio" в команду " Дифферсия/объединение". Как это:

Like This:

Различные аргументы:

diff $LOCAL $PWD/$REMOTE

Аргументы слияния:

merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$BASE $PWD/$MERGED

И если все нормально, это должно работать.

Ответ 3

Окна
Команда 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 для моего источника управления. Мне нравится больше, чем Сурсетри. Он достаточно прочен.

Ответ 4

Если кто-то заинтересован в настройках 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 не может отображать более одного раза одновременно. Когда я пытаюсь, он жалуется, что файл не может быть показан

Ответ 5

На Mac с intellij 2016

diff $LOCAL $PWD/$REMOTE

merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$BASE $PWD/$MERGED

Ответ 6

На сегодня (январь 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

Ответ 7

Для инструмента слияния в окнах эти аргументы работают для меня:

merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$MERGED

Ответ 8

Недавно я обнаружил более удобный способ использования IntelliJ Diff Tool без каких-либо настроек.

  1. Объединить две ветки в SourceTree
  2. В IntelliJ IDE (для меня это Webstorm) перейдите "VCS-> Git-> Resolve Conflicts"

Этот способ работает отлично.

enter image description here

Ответ 9

В 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().

Ответ 10

Как упоминалось в @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, и он запустит инструмент слияния с небольшой задержкой.

Ответ 11

Используя 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\"

Jetbrans Docs командной строки слияния

Ответ 12

Получил IntelliJ для работы в качестве инструмента сравнения и слияния SourceTree с

  • macOS 10.14.6
  • IntelliJ IDEA 2019.2.1 (версия для сообщества)
  • SourceTree 3.2.1 (225)

используя

Команда 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 для скриншота.

Надеюсь, это кому-нибудь поможет :-)