我在尝试在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
如何解决此问题?
答案 0 :(得分:1)
除了GNU之外,没有太多的diff实用程序可以采用svn给出的参数(bbdiff是为数不多的)。您需要将调用包装在shell脚本中。它解释了in the subversion docs。
修改强>
根据您的注释,默认文本差异仍在运行,我认为您的.subversion / config文件中存在错误。这与您的错误消息一致。最可能的原因是diff-cmd
行开头的空格。是的,subversion的解析器在行开头的空格处吓坏了。我在diff-cmd
行的开头添加了一个空格,并得到了相同的“期望选项”错误。
答案 1 :(得分: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,所以没关系)。
基本上,您必须知道传递给程序的各种参数位置。快速测试显示传递了以下参数:
-u
(统一差异)-L
(在差异中,使用以下作为左手文件的标题)bludgen.pl (revision 63)
(左手标题)-L
(在差异中,使用以下作为右手文件的标题)bludgen.pl (working copy)
(右手标题).svn/text-base/bludgen.pl.svn-base
(左手文件)bludgen.pl
(右手文件)更多信息here。