【问题标题】:How to use beyond compare as a external svn diff tool如何使用超越比较作为外部 svn diff 工具
【发布时间】:2010-12-08 14:54:33
【问题描述】:

我想配置它,以便 svn diff 文件名显示无法比较的差异。

我在 ubuntu 上。在相关说明中,每个人都使用什么来区分和合并。 BC 在 Windows 上很棒,但在 Linux 上看起来很丑,imo。

【问题讨论】:

  • 每个帖子只问一个问题

标签: svn ubuntu merge diff beyondcompare


【解决方案1】:

SVN Book on External Diff Tools

--diff-cmd--diff3-cmd 选项的存在,以及类似命名的运行时配置参数(请参阅 the section called “Config”),可能会导致错误地认为使用外部差异(或“差异”)和将工具与 Subversion 合并。虽然 Subversion 可以使用大多数流行的此类可用工具,但在设置上投入的努力往往不是微不足道的。

...

在 Subversion 中使用外部差异和合并工具(当然除了 GNU diff 和 diff3)的关键是使用包装脚本,将来自 Subversion 的输入转换为您的差异工具可以理解的内容,然后将将您的工具输出回 Subversion 期望的格式——GNU 工具会使用的格式。以下部分介绍了这些期望的细节。

【讨论】:

    【解决方案2】:

    绝对是Beyond Compare 的粉丝,因为它不仅是用于源代码控制的非常好的差异/合并工具,而且在帮助同步目录/文件方面做得非常好。 在购买副本时绝对不费吹灰之力 - 但不能保证 Linux 版本,因为我从未使用过它。

    【讨论】:

    • “如何使用超越比较作为外部 svn diff 工具”?
    • 我认为它指的是“在相关说明中,每个人都使用什么来区分和合并。”其中,如果你插入正确的标点符号会得到另一个问题。
    • 在 Windows 世界中,Araxis Merge 是我首选的视觉差异应用程序(比 Beyond Compare IMO 好得多)。但是在 GNU/Linux 下,我为什么要使用 Meld 以外的东西呢?
    • “在相关说明中,每个人都使用什么来区分和合并”!?
    • 没问题,我们都读得太快了——一定是想发表第一个答案/评论;-)
    【解决方案3】:
    【解决方案4】:

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

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

    这与 CooCooC 帖子中的链接所说的类似,只是它将 Beyond compare 的返回值转换为 subversion 期望的值:0 表示没有差异,1 表示有差异。这消除了错误消息和中止,否则会妨碍您...

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

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

    【讨论】:

    • 感谢内森的回复。它确实在我的系统(Ubuntu 12.04)中写入了一个名为“2”的文件。我做了一些可能代表您意图的更改:/usr/bin/bcompare "$7" "$6" -title1="$5" -title2="$3" -readonly &wait $![ $? -gt 2 ] && exit 1; exit 0
    • @colgur 酷,看起来更好。我从来没有注意到额外的文件被写出来了,现在已经很久了,我不太清楚我为什么这样做:(
    • 帮助远远超过接受的答案:) 感谢您的脚本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    相关资源
    最近更新 更多