通过git diff理解xfuncname

时间:2018-06-05 10:02:59

标签: regex git git-diff re2

我想知道router.post('/available-copies', function (req, res) { var ssn = req.body.userssn; var password = req.body.userpassword; sql.connect(sqlConfig, function (err) { if (err) console.log(err); // create Request object var request = new sql.Request(); // query to the database and execute procedure let query = "exec LoginMember @SSN='" + ssn + "', @PASSWORD='" + password + "';"; console.log(query) request.query(query, function (err, recordset) { if (err) { console.log(err); sql.close(); } sql.close(); res.send(recordset); }); }); }); 如何将提供给xfuncname的表达式应用于结果,以及是否可以将搜索hunk标题文本委托给另一个程序。

上下文:我想更改git diff的xfuncname设置,以显示xml文件的可用输出。一个示例xml,如下所示:

git diff

理想情况下,修改后的hunk标头的输出看起来像这样

<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标志。这是一个合适的描述吗?

由于RE2显然既不支持backreferences也不支持lookaheads,因此我不确定此方法是否可以实现我尝试做的事情。有没有办法指定一个接收diff作为输入的自定义程序/脚本,所以我可以自己指定一个Hunk标题?

1 个答案:

答案 0 :(得分:0)

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