3

MacVim をエディターとして使用し、Atlassian SourceTree (v1.5.3) を VCS フロントエンドとして使用しています。MacVim のコマンド ライン ヘルパー スクリプトがmvimインストールされ、mvimdiff適切にシンボリック リンクされています。

mvimdiffSourceTree のさまざまな種類の VCS リポジトリ (Git、Hg、SVN) の外部差分ツールとして使用したいと考えています。

SourceTree を介してファイル/マージの競合を「外部差分」すると、両方の差分ウィンドウが空になります。

を介してファイルを手動で比較すると、mvimdiff file1 file2適切に機能します。

これらは SourceTree での私の設定です: http://i.stack.imgur.com/2eQZD.png

SourceTree で動作するように MacVim/gVim を設定するにはどうすればよいですか?

4

2 に答える 2

0

Your settings in the diff configuration are almost correct, you just need to make a little adjustment to make sure that (for example) git can find the binary. In the git docs, it states that the binary (in your case mvimdiff) must be in your path or else given its full path.

That leaves you with two options, either make sure that mvimdiff exists in /usr/local/bin or /usr/bin (or some other place that is on the Mac's default path), or do what I have just done and tested: put the mvim script in a known place in your $HOME directory and reference it there with the ~ (the only expansion that git supports).

So, I have created a folder in my Home folder called .bin (with a leading dot to hide it from the Finder) and then put the mvim script in there. Then in SourceTree I have set the 'Diff Command' to

~/.bin/mvim -d

and I have set the 'Arguments' similar to what you have, but I have put them in quotes to handle files with spaces and other special characters in them, so

"$LOCAL" "$REMOTE"

NOTE: I have not tested this with hg or subversion, but since svn is supported via git-svn, it should work for subversion in that configuration too.

于 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 に答える