【发布时间】:2010-12-08 14:54:33
【问题描述】:
我想配置它,以便 svn diff 文件名显示无法比较的差异。
我在 ubuntu 上。在相关说明中,每个人都使用什么来区分和合并。 BC 在 Windows 上很棒,但在 Linux 上看起来很丑,imo。
【问题讨论】:
-
每个帖子只问一个问题
标签: svn ubuntu merge diff beyondcompare
我想配置它,以便 svn diff 文件名显示无法比较的差异。
我在 ubuntu 上。在相关说明中,每个人都使用什么来区分和合并。 BC 在 Windows 上很棒,但在 Linux 上看起来很丑,imo。
【问题讨论】:
标签: svn ubuntu merge diff beyondcompare
见SVN Book on External Diff Tools:
--diff-cmd和--diff3-cmd选项的存在,以及类似命名的运行时配置参数(请参阅 the section called “Config”),可能会导致错误地认为使用外部差异(或“差异”)和将工具与 Subversion 合并。虽然 Subversion 可以使用大多数流行的此类可用工具,但在设置上投入的努力往往不是微不足道的。...
在 Subversion 中使用外部差异和合并工具(当然除了 GNU diff 和 diff3)的关键是使用包装脚本,将来自 Subversion 的输入转换为您的差异工具可以理解的内容,然后将将您的工具输出回 Subversion 期望的格式——GNU 工具会使用的格式。以下部分介绍了这些期望的细节。
【讨论】:
绝对是Beyond Compare 的粉丝,因为它不仅是用于源代码控制的非常好的差异/合并工具,而且在帮助同步目录/文件方面做得非常好。 在购买副本时绝对不费吹灰之力 - 但不能保证 Linux 版本,因为我从未使用过它。
【讨论】:
就像其他答案所说的那样——你必须从脚本中调用超出 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
【讨论】:
/usr/bin/bcompare "$7" "$6" -title1="$5" -title2="$3" -readonly &wait $![ $? -gt 2 ] && exit 1; exit 0