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

没有多少 diff 实用程序,当然除了 GNU 之外,它们会采用 svn 给出的参数(bbdiff 是少数几个之一)。您需要将调用包装在 shell 脚本中。它在 subversion docs 中有解释。

编辑 根据您对默认文本差异仍在运行的评论,我认为您的 .subversion/config 文件中存在错误。这与您的错误消息一致。最可能的原因是diff-cmd行首有空格。是的,颠覆的解析器在行首的空格处吓坏了。我在行首放了一个空格,diff-cmd得到了同样的“Option expected”错误。

于 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 回答