Mercurial挂钩列出父母背后的过时分支

时间:2016-02-04 08:58:38

标签: version-control merge mercurial hook branch

我们使用mercurial工作流与一个稳定分支(默认),一个不稳定(开发)和功能分支。我们希望功能分支始终包含来自父分支的所有变更集,以简化它们的合并。是否有任何示例挂钩来阻止向其父分支后面的功能分支添加提交?当你的分支落后于主人时,Github也有类似的信息。

通常有两种情况:

  1. 在推送新更改之前,强制功能分支所有者与上游分支同步(推送的更改组不应位于其父级之后)
  2. 定期检查由于最近在其父级分支机构中提交而过时的子分支列表,并轻推分支所有者以同步或关闭它们

1 个答案:

答案 0 :(得分:0)

你问的基本上是两件事:

在我没有合并默认值的情况下,没有预先制作的拒绝推送的钩子,但也许有些google-foo可能会透露一些。但是,创建一个应该是非常直接的:

  • 根据我对您的要求的理解:您希望检查传入事务是否仅包含对非默认分支的提交,如果它们的最新提交是默认合并的默认分支。这是pretxnchangegroup类的服务器端钩子的任务;在那里,您可以分析传入的事务及其包含的变更集,如果不符合您的要求,则拒绝该事务。在那里检查最新提交的功能分支(或更好的非默认和非开发(?))是默认或开发的合并提交。

关于使用中央存储库进行定期检查:

  • 定期检查过时的子分支是客户端操作。例如,你可以在这里创建一个提交钩子。因此,每次提交时查询hg传入。或者只是在客户端创建一个crontab条目,并根据需要修改输出。