【问题标题】:Alternative diff algorithm for special file extension for GitGit特殊文件扩展名的替代差异算法
【发布时间】:2016-02-24 15:58:33
【问题描述】:

我想为特殊文件扩展名使用另一种差异算法,例如“.java”和其他文件的标准差异算法。

我可以通过 .gitattributes 文件:

*.java diff=javadiffprogramm

.gitconfig 文件:

[diff "javadiffprogramm"]
    command = pathToDiffProgram.

我的问题是“javadiffprogramm”的输入参数的格式是什么,它应该在哪里输出diff的结果? diff的结果格式类似于“@@ -1,7 + 1,6 @@..."。

关于这个话题的一些问题:

【问题讨论】:

    标签: git diff git-diff


    【解决方案1】:

    这在the git man page 中记录为GIT_EXTERNAL_DIFF

    GIT_EXTERNAL_DIFF

    当设置环境变量 GIT_EXTERNAL_DIFF 时,调用由它命名的程序,而不是上面描述的 diff 调用。对于添加、删除或修改的路径,使用 7 个参数调用 GIT_EXTERNAL_DIFF:

    path old-file old-hex old-mode new-file new-hex new-mode
    

    文档继续解释这些参数是什么。

    输出应为 STDOUT。

    【讨论】:

    • 非常感谢!我找到了大约 7 个输入参数,但没有找到关于输出的。也许我没有专心。
    • @NAlmaz 我也找不到有关输出的信息。这是基于 Unix 工具通常如何工作的有根据的猜测。如果 Git 想要将输出写入其他地方,它可以自行重定向。
    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 2014-10-18
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 2016-09-20
    • 1970-01-01
    相关资源
    最近更新 更多