是否可以在 SourceTree 中使用 IntelliJ Diff 工具?我知道它可以从终端访问。
谢谢
Took some time to figure out arguments.
Diff command text box should contain path to intellij, like: /Applications/IntelliJ\ IDEA\ 12.app/Contents/MacOS/idea
Windows
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 工具的参数:
差异工具
<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>
官方文档:running-intellij-idea-as-a-diff-or-merge-command-line-tool
FWIW,我最终使用 IntelliJ 进行源代码控制。我比 Sourcetree 更喜欢它。它相当健壮。
对于今天(2019 年 1 月),它可以在如下窗口中运行:
外部差异/合并:
差异工具:
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
如果有人对Mac中的Android Studio设置感兴趣:
<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 一次不能显示超过 1 个差异。当我尝试时,它抱怨无法显示文件
在装有 Intellij 2016 的 Mac 上
diff $LOCAL $PWD/$REMOTE
merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$BASE $PWD/$MERGED
在 Windows 和 Sourcetree >2.4 上使用 PHPStorm 2013 我不得不转义参数并添加合并选项的完整路径。
差异/合并命令:
C:\Program Files\JetBrains\PhpStorm 2017.3.6\bin\phpstorm64.exe
差异参数:
diff \"$LOCAL\" \"$REMOTE\"
合并参数:
merge \"$PWD/$LOCAL\" \"$PWD/$REMOTE\" \"$PWD/$MERGED\"
merge \"$PWD/$LOCAL\" \"$PWD/$REMOTE\" \"$PWD/$BASE\" \"$PWD/$MERGED\"
对于 Windows 上的合并工具,这些参数对我有用:
merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$MERGED
正如@Shad 提到的,IntelliJ 可能不会在 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
,它会在短时间内启动合并工具。
让 IntelliJ 用作 SourceTree 的差异和合并工具
使用
差异命令: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。
希望这可以帮助某人:-)