是否可以知道何时从远程存储库中提取某个提交并使用 Mercurial 更新文件?
更准确地说,我hg pull -u
是几天前做的,现在我想知道这次拉取是否只下载了最后一个提交,或者是否有一些提交还没有被拉取,使我的最后一次拉取也得到了它们。
hg log
似乎给出了提交的日期,但没有关于更新。这些信息在任何地方吗?
Mercurial 不会记录此信息。Mercurial 存储库只是变更集的容器,Mercurial 不存储变更集如何(或何时)进入存储库。
您可以为此设置挂钩,但您必须自己构建脚本。一个非常基本的系统将是
[hooks]
pre-pull = (date; hg root; hg tip) >> ~/.pull-log
post-pull = hg tip >> ~/.pull-log
这将~/.pull-log
在每个hg pull
. 拉后记录新的提示。您可以构建解析日志文件的脚本,以提取有关每次拉取操作的信息。
hg log
似乎给出了提交的日期,但没有关于更新
是的,hg log
只关心存储的历史记录(变更集),更新等工作副本操作不是记录历史记录的一部分。
最后,让我提一下,这是我第一次看到有人要求“拉日志”。然而,相反的情况很常见:有一些脚本用于在服务器上维护“推送日志”,以查看谁推送了什么以及何时推送。这是由Mozilla等人完成的。有关一些启动说明,请参阅此自述文件。
如果您想记录何时以及使用哪个修订版 hg update 来更新代码,请使用这些钩子:
[hooks]
pre-update = (echo "---------------------------------"; date --rfc-3339=s; hg root; echo "pre-update:"; hg identify --id --branch) >> .hgupdates
post-update = (echo "post-update:"; hg identify --id --branch) >> .hgupdates
每次运行 hg update 时,上述钩子都会生成这样的日志条目:
2015-12-23 00:44:31+02:00
/var/www/my/project
pre-update:
802120d1d3a0 somebranch
post-update:
302720d1d3d2 otherbranch
当 hg update 在没有设置特定修订标志 (-r) 的情况下运行时,这也有效