0

Mac OSX Lion で svn 用の外部差分プログラムをセットアップしようとすると問題が発生します。xxdiff と opendiff の両方がインストールされています。

~/.subversion/config に次の行を追加します。

diff-cmd = opendiff
diff3-cmd = opendiff

また

diff-cmd = /Applications/xxdiff.app/Contents/MacOS/xxdiff
diff3-cmd = /Applications/xxdiff.app/Contents/MacOS/xxdiff

しかし、svn を呼び出すと、次のエラーが発生します。

svn: /Users/tre11/.subversion/config:49: Option expected

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

もちろん、GNU のものを除いて、svn によって指定されたパラメーターを使用する diff ユーティリティは多くありません (bbdiff は数少ないユーティリティの 1 つです)。呼び出しをシェル スクリプトでラップする必要があります。Subversion docs で説明されています。

編集 デフォルトのテキスト差分がまだ実行されているというコメントに基づいて、.subversion/config ファイルにエラーがあると思います。それはあなたのエラーメッセージと一致しています。最も考えられる原因は、行頭のスペースdiff-cmdです。はい、Subversion のパーサーは行頭のスペースでおかしくなりました。行の先頭にスペースを入れるdiff-cmdと、同じ「オプションが必要です」というエラーが発生しました。

于 2012-03-07T15:46:49.437 に答える
0

MacVIM で使用する例を次に示します。

#! /usr/bin/env perl

use strict;
use warnings;

use constant DIFF => qw(mvim -d -f);

my $parameters = $#ARGV;
my $file1 = $ARGV[$parameters - 1];
my $file2 = $ARGV[$parameters];
my $title1 = $ARGV[$parameters - 4];
my $title2 = $ARGV[$parameters - 2];

$ENV{TITLE} = "$title1  -   $title2";
system DIFF, '-c', 'let &titlestring=$TITLE', $file1, $file2;

これは Perl プログラムです (ただし、Mac には Perl がインストールされているので問題ありません)。

基本的に、プログラムに渡されるさまざまなパラメーターの位置を知っている必要があります。簡単なテストでは、次のパラメーターが渡されたことを示しています。

  1. -u (ユニファイデフ)
  2. -L (diffでは、左側のファイルのタイトルとして以下を使用)
  3. bludgen.pl (revision 63) (左タイトル)
  4. -L (diffでは、右側のファイルのタイトルとして以下を使用)
  5. bludgen.pl (working copy) (右手タイトル)
  6. .svn/text-base/bludgen.pl.svn-base (左手ヤスリ)
  7. bludgen.pl(右手やすり)

詳細はこちら

于 2012-03-07T20:41:10.800 に答える