使用diff3

时间:2017-11-02 17:20:15

标签: git bash command-line compare diff

diff支持macOS Sierra上diff3不支持的选项。例如,diff支持-b选项以忽略空格更改,但diff3不支持。{/ p>

但是,diff3支持选项--diff-program,我认为可以使用该选项来传递将使用所需选项调用diff的程序。

因此,我创建了一个类似mydiff的程序:

diff -b $1 $2

但是在命令行上运行diff3 --diff-program=./mydiff left.txt base.txt right.txt时,我收到以下错误:

diff: missing operand after `--'
diff: Try `diff --help' for more information.
diff3: subsidiary program `./mydiff' failed

如何解决这个问题?

有没有办法避免创建mydiff并通过以某种方式设置--diff-program=...直接在命令行中传递选项?

由于

1 个答案:

答案 0 :(得分:1)

问题是diff3将使用以下参数调用指定的diff命令:--horizon-lines=100 -- F1 F2其中F1F2是文件参数。您编写mydiff的方式,当您运行diff3 --diff-program=./mydiff left.txt base.txt right.txt时,将执行此操作:

diff -b --horizon-lines=100 --

如果你运行它,你会得到同样的错误。

mydiff的正确方法:

#!/bin/sh

diff -b "$@"

不,不幸的是,没有办法在某种程度上写diff -b内联, 您需要创建一个专用脚本才能使其与diff3一起使用。