在某些情况下,我需要强制 Mercurial 用户运行 hg pull -u
在任何之前 hg commit
可以允许,即 hg pull
将意味着传入队列是空的——此外,我还希望该人使用分支的头部版本。
我怎样才能设置这样的限制?
(我完全知道这违背了 DVCS 设计核心的一部分)
最佳答案
您可以要求您的开发人员安装
[hooks]
pre-commit = hg pull -u
在他们的配置文件中(它可能应该安装在每个存储库的
.hg/hgrc
文件中,因为此工作流程是特定于存储库的)。这使得 Mercurial 有点像 Subversion:您的开发人员将只有一个出色的变更集。但请注意,一旦有人推送到服务器,
hg pull -u
无法更新到新的分支提示,因为它会跨分支(拓扑分支)这样做。因此,此时需要适当的 merge (或 rebase,参见 hg pull --rebase
)。
关于Mercurial:在 "hg pull -u"之前强制执行 "hg commit",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175538/