0

简单场景:我想在推送之前访问一次变更集,并将文件差异信息(以通常的 git diff 格式..或任何其他 base64 可序列化格式)发送到我自己的 RESTful Web 服务进行检查。我已经有一个 pretxnchangegroup 挂钩设置.. 我可以访问节点,但hg export不显示任何新内容(因为它们可能被隐藏,如下所述:如何根据脚本拒绝推送到 Mercurial 服务器,而不冒风险在那段时间拉不好?),所以我想我必须通过 Mercurial API。

问题:我没有“了解”如何从钩子中的 Mercurial API 以某种文本差异格式(git diff,等等)轻松访问文件更改信息,API 文档中似乎没有任何内容:https ://www.mercurial-scm.org/wiki/MercurialApi

只是我还是这种“潜入 Mercurial 代码库”的无人区?想避免挖这么深,但如果有必要我会的。

4

1 回答 1

1

您需要导入模块patch。它有一个方法diff(repo, prev, node, opts=opts)可以给你一个块列表。

查找文件cmdutil.py以获取如何使用该功能的示例;此文件包含hg export(搜索def export)的代码。

于 2013-10-28T16:56:06.470 回答