我想知道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作为输入,这样我就可以自己指定一个块头文件?
1条答案
按热度按时间rkttyhzu1#
可以,您可以覆盖内部的diff生成器。请参阅https://git-scm.com/docs/diff-config的
diff.external
部分。