Python hg日志:如何获得特定用户的最新提交?
我有多个用户的回购协议。我需要制作一个python脚本来检索特定用户的最新提交。我该如何使用mercurial 我正在考虑通过Python的Python hg日志:如何获得特定用户的最新提交?,python,mercurial,commit,Python,Mercurial,Commit,我有多个用户的回购协议。我需要制作一个python脚本来检索特定用户的最新提交。我该如何使用mercurial 我正在考虑通过Python的子进程调用hglog命令。问题是我应该如何调用hglog命令,以便它告诉我用户的最新日志。简单(但不是高效或优雅的方式) hg日志-u用户名 或(带转速集) hg日志-r“作者(用户名)” 有附加值 如果字符串以“re:”开头,则字符串的其余部分将被视为正则表达式。要匹配实际包含“re:”的用户,请使用前缀“literal:” 我认为您应该能够通过使
子进程调用hglog
命令。问题是我应该如何调用hglog
命令,以便它告诉我用户的最新日志。简单(但不是高效或优雅的方式)
hg日志-u用户名
或(带转速集)
hg日志-r“作者(用户名)”
有附加值
如果字符串以“re:”开头,则字符串的其余部分将被视为正则表达式。要匹配实际包含“re:”的用户,请使用前缀“literal:”
我认为您应该能够通过使用系统调用调用这样的东西来获取单个用户的最新提交。(命令行版本如下。)
head-5
为您的用户名提供了最新变更集的整个缩写hg日志
输出,其中包括五行:变更集、标记、用户、日期和摘要。如果您只需要变更集,那么可以使用以下内容。(还是命令行版本。)
评论指出,这对输出格式做出了不必要的假设。我同意
根据评论,这似乎是从用户处获得最后一次提交的最佳表达
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)"
配管是个坏主意(tm)。模板和日志选项在一次log调用中工作得更好,awk将正确打印csrt哈希,只需重新定义为“:“FSAs已被注释,使用日志选项可以更高效、更安全地完成您对管道的所有操作。请仔细阅读,和。目前还不清楚这些引用如何帮助只返回特定用户的最新提交。如果你发表一个这样的答案,我将非常乐意投赞成票。Python的pipes.quote()或shlex模块是否没有正确处理安全问题?请看Lazy Badger对这个问题的回答和我的第二条评论。安全问题是,变更集文本格式中的行数取决于许多因素——任何标记、书签、父项数等等。这不仅仅是5行。它可能只有4个,没有上限。“最新提交”对您意味着什么?可能会添加指向和答案的链接。此外,可能会在示例中添加-l
选项(或limit()/last()
revset函数)。
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)"