我想知道如何git diff将提供给xfuncname的表达式精确地应用于结果,以及是否有可能将对大块头文本的搜索委派给另一个程序。
上下文:我想为我更改xfuncname设置,git diff以显示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>
Run Code Online (Sandbox Code Playgroud)
理想情况下,带有修改后的块头的输出看起来像这样
@@ -15 +15 @@ <layer1-2><layer2-3><layer3-1>
[...]
-notchanged
+changed
[...]
Run Code Online (Sandbox Code Playgroud)
我的观察结果表明,git diff将正则表达式应用于差异之前的文件部分,获取最后一个匹配项,并从第一个捕获组开始匹配;它使用m标志。这是一个合适的描述吗?
由于RE2显然既不支持反向引用,也不支持前瞻,所以我不确定通过这种方法是否可以归档我尝试执行的操作。有没有一种方法可以指定一个定制程序/脚本来接收diff作为输入,以便我自己指定一个大块头?