在尝试启动我的真正差分引擎时,我已将设置调整为非常小的设置,但仍然没有输出,也没有任何迹象表明为什么似乎什么也没发生。(搜索 extdiff 的 SO 和 Mercurial 站点(包括 mercurial wiki)给了我我尝试过的所有想法,尽管也许我还没有尝试过。)
我尝试了一个 bash 脚本和一个 .bat 文件;我已经尝试了位于 E: 驱动器的“根”中的每个脚本,标识为 /cygdrive/e/ 或 E:/ 我尝试过引用和不引用脚本的路径。我想我已经用尽了这些组合,还没有得到任何迹象表明正在运行什么(如果有的话)。直接调用时,FdbCmp.bat 的行为与预期相同;它位于我的 $PATH 目录和 Windows Path 环境变量中。
其他建议?看起来它很简单,应该“正常工作”
mercurial.ini 包括
[extdiff]
hgext.extdiff
cmd.fdiff0 = "e:/Program Files/DbCmp/FdbCmp.bat"
opts.fdiff0 = $root --file $local --file $other
FdbCmp.bat:
@echo off
echo FdbCmp.bat testing
echo FdbCmp.bat args: ::%1:: ::%2:: ::%3 ::%4:: ::%5:: ::%6:: ::%7:: ::%8:: ::%9::
汞显示配置 | grep extdiff返回预期结果(在其他几行中)
extdiff.cmd.fdiff0="e:/Program Files/DbCmp/FdbCmp.bat"
extdiff.opts.fdiff0=$root --file $local --file $other
extensions.hgext.extdiff=
hg fdiff0返回 $? = 0(cygwin bash 或 CMD.EXE)并且不显示输出。我预计 FdbCmp.bat 文件会打印一些东西。
hg fdiff0 abc(其中文件 a、b、c 不存在)返回以下内容。这是预期的,因为文件不存在并且 Hg 报告了这一点。
a: The system cannot find the file specified
b: The system cannot find the file specified
c: The system cannot find the file specified
hg fdiff0 file1 file2 file3所有文件都存在的地方返回没有错误也没有输出。这是出乎意料的 - FdbCmp.bat 应该已经被调用并打印了它的东西。
仅测试 .bat 文件就可以得到预期的结果:
$ FdbCmp.bat moo cow oink pig
FdbCmp.bat testing
FdbCmp.bat args: ::moo:: ::cow:: ::oink ::pig:: :::: :::: :::: :::: ::::
hg --version 是 2.4.6-35ba170c0f82