首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在尝试在mac上设置svn外部比较程序

正在尝试在mac上设置svn外部比较程序
EN

Stack Overflow用户
提问于 2012-03-07 22:49:51
回答 2查看 2.5K关注 0票数 0

我在尝试为Mac OSX Lion上的svn设置外部比较程序时遇到问题。我已经安装了xxdiff和opendiff。

我将以下行添加到~/.subversion/config:

代码语言:javascript
复制
diff-cmd = opendiff
diff3-cmd = opendiff

代码语言:javascript
复制
diff-cmd = /Applications/xxdiff.app/Contents/MacOS/xxdiff
diff3-cmd = /Applications/xxdiff.app/Contents/MacOS/xxdiff

但是当我调用svn时,我得到了这个错误:

代码语言:javascript
复制
svn: /Users/tre11/.subversion/config:49: Option expected

如何解决此问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-07 23:46:49

当然,除了GNU实用程序之外,没有多少diff实用程序可以接受svn提供的参数(bbdiff是为数不多的几个)。您需要将调用封装在shell脚本中。这是对in the subversion docs的解释。

编辑配置根据您的评论默认文本仍在运行,我认为您的.subversion/文件中存在错误。这与您的错误消息一致。最可能的原因是diff-cmd行开头的空格。是的,subversion的解析器在行首的空格处会出现异常。我在diff-cmd行的开头放了一个空格,得到同样的"Option expected“错误。

票数 1
EN

Stack Overflow用户

发布于 2012-03-08 04:41:11

下面是我在MacVIM中使用的一个示例

代码语言:javascript
复制
#! /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 (统一Diff)
  2. -L (在diff中,使用以下内容作为左手文件的标题) left hand file)
  3. bludgen.pl (revision 63) (在diff中,使用以下内容作为右手文件的标题) right hand title)
  4. .svn/text-base/bludgen.pl.svn-base (Left hand file)
  5. bludgen.pl (Right hand file)
  6. bludgen.pl (working copy) )

更多信息here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9603647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档