如何查看mercurial文件上下文的更改?

时间:2012-06-01 15:33:08

标签: python api mercurial

我目前正在尝试编写一个脚本,它会在任务描述中找到所有已更改的文件,并且我已经让脚本为此工作了。但现在我正在尝试根据文件是否被添加,修改或删除来对其进行排序。我查看了Mercurial API,但找不到任何可以做我想要的东西。

我的代码目前使用repo[revnum].description()并解析它以查找哪些包含#,如果是,则将文件上下文添加到列表中。 这工作正常,我可以打印文件列表,但我找不到一种方法来查看每个上下文做了什么。任何人都可以帮助我,或者给我一些更好的文档吗?

3 个答案:

答案 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

我解析了这个输入并将其分类为添加,删除,修改等。