我有一个包含多个用户的仓库。我需要制作一个 python 脚本来检索特定用户的最新提交。我如何用 mercurial 做到这一点?
我正在考虑hg log
通过 Python 的subprocess
调用来调用命令。问题是我应该如何调用hg log
命令,以便它告诉我用户的最新日志。
简单(但不是高效或优雅的方式)
hg log -u USERNAME
或(带修订)
hg log -r "author(USERNAME)"
具有附加价值
如果字符串以“re:”开头,则字符串的其余部分被视为正则表达式。要匹配实际包含“re:”的用户,请使用前缀“literal:”。
我认为您应该能够通过使用系统调用调用类似的东西来获得单个用户的最新提交。(命令行版本如下。)
$ 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)"