Mercurial:在 "hg pull -u"之前强制执行 "hg commit"

标签 mercurial dvcs mercurial-hook

在某些情况下,我需要强制 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/

相关文章:

visual-studio - 如何在一个解决方案中实现多个项目的持续集成和部署?

vim - 在 Mercurial 中使用 VCSCommand Vim 插件时出现问题

python - 是否有针对 "hg bisect --command"的推荐命令?

Google 代码值错误上的 Mercurial 推送错误

authentication - 如何验证 TortoiseHg Web 服务器上的用户?

windows - Windows 上的 Mercurial HG_NODE Hook 变量

mercurial - tortoisehg 一步提交推送 - 如何以及日志文件在哪里

mercurial - 获取 Mercurial 中拉取和更新的日期

git - 哪个分布式源代码控制系统与 Windows 和 Visual Studio 的集成最好?

python - 如何为 Mercurial Hooks 的 pyCharm 设置 python 解释器