我目前正在尝试编写一个脚本,它会在任务描述中找到所有已更改的文件,并且我已经让脚本为此工作了。但现在我正在尝试根据文件是否被添加,修改或删除来对其进行排序。我查看了Mercurial API,但找不到任何可以做我想要的东西。
我的代码目前使用repo[revnum].description()
并解析它以查找哪些包含#
,如果是,则将文件上下文添加到列表中。
这工作正常,我可以打印文件列表,但我找不到一种方法来查看每个上下文做了什么。任何人都可以帮助我,或者给我一些更好的文档吗?
答案 0 :(得分:2)
您需要使用Mercurial API吗?通过使用hg log
答案 1 :(得分:1)
通常,您应该避免使用Mercurial API直接编写脚本。编写脚本以使用CLI或者甚至使用hglib
更好。正如MercurialApi wiki所述:
对于绝大多数第三方代码,最好的方法是使用 Mercurial发布,记录并稳定的API:命令行 接口
话虽如此,如果您确实需要使用API,可以使用repo.status()
查找您询问的信息:
modified, added, removed, deleted, unknown, ignored, clean = repo.status(revnum-1, revnum)
答案 2 :(得分:1)
我最终使用类似于Tim所说的内容,尽管我仍然使用了API。 我从mercurial导入命令,然后调用commands.status(repo.ui,repo,change = revnum)
我使用repo.ui.pushbuffer()和repo.ui.popbuffer()获取了此输出,其形式为
A file_path1
R file_path2
R file_path3
A file_path4
M file_path5
我解析了这个输入并将其分类为添加,删除,修改等。