通过git diff了解xfuncname

cld4siwp  于 2022-12-10  发布在  Git
关注(0)|答案(1)|浏览(188)

我想知道git diff是如何将提供给xfuncname的表达式应用于结果的,以及是否可以将搜索块头文本的任务委托给另一个程序。
上下文:我想更改git diff的xfuncname设置,以显示xml文件的可用输出。示例xml如下所示:

<layer1-1>
</layer1-1>
<layer1-2>
    <layer2-1>
    </layer2-1>
    <layer2-2>
    </layer2-2>
    <layer2-3>
        <layer3-1>
            [...]
            changes
            [...]
        </layer3-1>
        <layer3-2>
        </layer3-2>
        <layer3-2>
        </layer3-2>
    </layer2-3>
</layer1-2>
<layer1-3>
</layer1-3>

理想情况下,修改了块头的输出如下所示

@@ -15 +15 @@ <layer1-2><layer2-3><layer3-1>
[...]
-notchanged
+changed
[...]

我的观察暗示git diff将正则表达式应用于文件的差异 * 之前 * 的部分,获取 * 最后 * 匹配,并从该匹配中获取 * 第一捕获组 *;并且它使用m标志。这样的描述合适吗?
由于RE 2显然既不支持backreferences也不支持lookaheads,我不确定我尝试做的事情是否可以通过这个方法实现。有没有办法指定一个自定义程序/脚本,它接收diff作为输入,这样我就可以自己指定一个块头文件?

rkttyhzu

rkttyhzu1#

可以,您可以覆盖内部的diff生成器。请参阅https://git-scm.com/docs/diff-configdiff.external部分。

相关问题