Subversion配置:什么是diff3-has-program-arg?

时间:2011-04-14 02:22:34

标签: svn configuration diff config diff3

Subversion有diff3-has-program-arg

选项
### Set diff3-has-program-arg to 'yes' if your 'diff3' program
###   accepts the '--diff-program' option.
diff3-has-program-arg = [ yes | no ]

我的diff3确实支持--diff-program选项,但我看不到在哪里配置要调用的程序。

  • 我该怎么做?
  • 我为什么要这样做?

2 个答案:

答案 0 :(得分:3)

diff3-has-program-arg似乎很残酷。该选项在libsvn_subr/io.c中引用,但SVN_DIFF3_HAS_DIFF_PROGRAM_ARG ifdef禁用了使用该选项的代码。

this revision中删除了设置该宏的配置逻辑。

an old mail on the svn dev list开始,看起来HAS_DIFF_PROGRAM_ARG的原始需求是支持需要--diff-program选项的diff版本和拒绝它的版本,在实现subversion的内部差异支持之前

答案 1 :(得分:1)

---经过一些测试后编辑---

--diff-program=value选项基本上指示diff3使用哪两个文件差异检查程序。然后diff3将从两个文件差异检查程序的几次运行中获取输出,并将它们交错为三向差分输出。

使用diff3 --diff-program=diff a b c有效地告诉diff3使用diff作为双向文件差异计划。 subversion配置参数diff3-has-program-arg是subversion的一个标志,用于在调用3路diff程序时添加--diff-program=xxx参数。我敢打赌,在某个地方还有另一个选项可以让你设置双向差分工具。

我猜那个灰熊不是拉我的腿(那个时候),但是当他这么做的时候更有趣。只要问任何编码了bash shell炸弹的人,他们就会同意(痛苦结束后)。

---原帖如下---

来自旧的diff3 pages(谢谢GNU)。

--diff-program=program
    Use the compatible comparison program program to compare files instead of diff. 

激活了diff使用外部比较程序(而不是它的内部文本匹配器)的能力。我从来没有见过它,但是一个老greybeard曾经向我解释过它的目的是为了比文本比较程序更好,比如在不同的“C”输入之间规范化空白的程序,这样差异就不会被抛出对齐由于制表符/空格转换问题(等)。

我很想知道这是否属实,或者只是一个幻想的神话告诉当时一个非常“绿色”的人。