hg log:如何获得特定用户的最新提交?

时间:2013-04-06 12:50:21

标签: python mercurial commit

我有一个拥有多个用户的回购。我需要创建一个python脚本来检索特定用户的最新提交。我如何用mercurial做到这一点?

我正在考虑通过Python的hg log调用来调用subprocess命令。问题是我应该如何调用hg log命令,告诉我用户的最新日志。

2 个答案:

答案 0 :(得分:7)

简单(但不高效或优雅)

  • hg log -u USERNAME

或(使用revsets)

  • hg log -r "author(USERNAME)"

附加值

  

如果string以“re:”开头,则字符串的其余部分将被视为正则表达式。要匹配实际包含“re:”的用户,请使用前缀“literal:”。

答案 1 :(得分:1)

我认为你应该能够通过系统调用调用类似的东西来获得单个用户的最新提交。 (命令行版本如下。)

$ hg log -u your-user-name | head -5

head -5为您的用户名提供了最新变更集的缩写hg log输出,其中包含五行:变更集,标记,用户,日期和摘要。如果您只想要变更集,可以使用这些行中的内容。 (命令行版本,再次。)

$ hg log -u mike@fontling.com | head -1 | awk '{print $2}'

评论表明这对输出格式做出了无根据的假设。我同意。


根据评论,这似乎是用于获取用户最后一次提交的最佳表达式。

hg log -r "last(author('email@domain.com'))" 
hg log -r "last(author('Fred Flintstone'))"

获得最后三个。 。

hg log -r "last(author('email@domain.com'), 3)" 
hg log -r "last(author('Fred Flintstone'), 3)"