3

我使用 MacVim 作为我的编辑器,使用 Atlassian SourceTree (v1.5.3) 作为我的 VCS 前端。我安装了 MacVim 的命令行帮助脚本mvimmvimdiff正确符号链接。

我想mvimdiff在 SourceTree 中用作不同类型的 VCS 存储库(Git、Hg、SVN)的外部差异工具。

当通过 SourceTree “外部差异”处理文件/合并冲突时,两个差异窗口都是空的。

手动区分文件通过mvimdiff file1 file2正常工作。

这些是我在 SourceTree 中的设置:http: //i.stack.imgur.com/2eQZD.png

如何设置 MacVim/gVim 以使用 SourceTree?

4

2 回答 2

0

您在 diff 配置中的设置几乎是正确的,您只需要进行一些调整以确保(例如)git 可以找到二进制文件。在 git docs 中,它声明二进制文件(在你的情况下mvimdiff)必须在你的路径中,或者给出它的完整路径。

这给你留下了两个选择,要么确保它mvimdiff存在于/usr/local/binor (或 Mac 的默认/usr/bin路径上的某个其他位置),要么执行我刚刚完成和测试的操作:将脚本放在目录中的已知位置并参考它与(git支持的唯一扩展)一起存在。mvim$HOME~

所以,我在我的主文件夹中创建了一个名为.bin(用一个前导点将其从 Finder 中隐藏)的文件夹,然后将 mvim 脚本放在那里。然后在 SourceTree 中,我将“Diff 命令”设置为

~/.bin/mvim -d

并且我设置了与您所拥有的类似的“参数”,但我将它们放在引号中以处理其中包含空格和其他特殊字符的文件,所以

"$LOCAL" "$REMOTE"

注意:我没有使用hgor subversion 对此进行测试,但由于svn通过 支持git-svn,它也应该适用于该配置中的 subversion。

于 2013-06-15T21:31:14.267 回答
0

您必须通过选项 -f 告诉 MacVim 不要分叉一个新进程,但似乎 SourceTree 没有正确传递参数。

因此,要使用 mvimdiff,只需将 mvim 复制为 mvimdiff(而不是符号链接)并将 mvimdiff 的最后但 3 行从

exec "$binary" -g $opts ${1:+"$@"}

exec "$binary" -g -f $opts ${1:+"$@"}
于 2015-09-29T23:45:17.587 回答