我想知道git diff如何确切地将提供给xfuncname名称的表达式应用到结果,以及是否有可能将对hunk头文本的搜索委托给另一个程序。
上下文:我想更改我的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标志。这样的描述合适吗?
由于RE2显然既不支持反向引用也不支持看头,所以我不确定我所要做的工作是否可以通过这种方法来实现。是否有一种方法可以指定一个自定义程序/脚本来接收这个差异作为输入,这样我就可以自己指定一个宏头了吗?
发布于 2020-09-03 21:55:50
是的,您可以覆盖内部的diff生成器。请参阅diff.external部分的https://git-scm.com/docs/diff-config。
https://stackoverflow.com/questions/50697387
复制相似问题