如何使用超越比较作为外部svn diff工具

时间:2009-10-21 06:59:24

标签: svn ubuntu merge diff beyondcompare

我想配置它,以便svn diff filename显示超出比较的差异。

我在ubuntu上。在相关的说明中,每个人都使用差异和合并。 BC在Windows上很棒,但在Linux上非常难看,imo。

4 个答案:

答案 0 :(得分:5)

就像其他答案所说的那样 - 你必须在脚本之外调用,并将其传递给subversion的--diff-cmd选项。我在linux上使用以下脚本:

#!/bin/bash
test `/usr/bin/bcompare "$6" "$7" -title="$3" -title2="$5" -readonly` > 2 && exit 1; exit 0

这类似于CooCooC帖子中的链接所说的,除了它将超出比较的返回值转换为subversion所期望的:0表示无差异,1表示差异。这消除了错误信息和中止,否则会妨碍你...

编辑:请参阅下面的colgur评论,更好的方法是:

/usr/bin/bcompare "$7" "$6" -title1="$5" -title2="$3" -readonly & wait $! [ $? -gt 2 ] && exit 1; exit 0

答案 1 :(得分:4)

请参阅SVN Book on External Diff Tools

  

--diff-cmd--diff3-cmd选项以及类似命名的运行时配置参数(请参阅the section called “Config”)的存在可能会导致使用外部差异的容易程度的错误概念(或者“diff”)并将工具与Subversion合并。虽然Subversion可以使用大多数流行的这类工具,但投入设置这些工具的努力往往变得非常重要。

     

...

     

使用外部差异和合并工具(当然除了GNU diff和diff3)与Subversion的关键是使用包装器脚本将Subversion的输入转换为差异工具可以理解的东西,然后转换将工具的输出恢复为Subversion期望的格式 - GNU工具将使用的格式。以下部分介绍了这些期望的具体内容。

答案 2 :(得分:3)

答案 3 :(得分:0)

绝对是Beyond Compare的粉丝,因为它不仅是一个非常好的差异/合并工具,用于源代码控制,它在帮助同步目录/文件方面做得非常好。 在购买副本时,绝对不用脑子 - 不能担保Linux版本,因为我从未使用它。