Mercurial工作流适用于具有多台机器的私人分支机构,服务于单个中央回购

Mercurial工作流适用于具有多台机器的私人分支机构,服务于单个中央回购,mercurial,Mercurial,我有一个svn回购协议,我想使用Mercurial作为它的前端。我一直在测试hgsubversion,它看起来相当不错 在编写和测试代码时,我通常必须在机器之间切换,并且我希望能够以这样的方式签入我的东西(在分支上,mq,还不确定),以便我可以在其他机器上获取它,在那里编辑和推送等等,并且只有当我准备好将它推送到中央repo时 在git中,我会使用临时的私有分支,在我的机器之间推拉。然后我会重新回到主分支,推动中央回购。但我仍然习惯于hg完全不同的分支模型,我看不出许多选择中哪一个最有意义(克隆

我有一个svn回购协议,我想使用Mercurial作为它的前端。我一直在测试hgsubversion,它看起来相当不错

在编写和测试代码时,我通常必须在机器之间切换,并且我希望能够以这样的方式签入我的东西(在分支上,mq,还不确定),以便我可以在其他机器上获取它,在那里编辑和推送等等,并且只有当我准备好将它推送到中央repo时

在git中,我会使用临时的私有分支,在我的机器之间推拉。然后我会重新回到主分支,推动中央回购。但我仍然习惯于hg完全不同的分支模型,我看不出许多选择中哪一个最有意义(克隆、命名分支[它们是永久的?]、匿名分支、mq…)


对易变的新手有什么提示吗?

只需对“中央”和“进行中”使用单独的回购协议即可。让你的中心、有意义的回购成为你推动变革、准备与全世界分享的地方,直到你准备好发布变革,才将它们推到一个单独的“-devel”回购。从你所有的机器上推拉,当你准备好的时候,用“推”的方式将-devel升级为正式的

如果您不希望生成的变更集必须与正在进行的变更集相匹配,那么您可以更喜欢在devel中使用本身受版本控制的补丁队列(mq),但我喜欢公开过程和结果,所以我不走这条路

无论采用哪种方式,推送和拉送都是您需要继续进行的工作,这些工作将进入/来自-devel repo(或版本化队列),然后在准备就绪时迁移到central


(在一篇关于这个问题的评论中建议的LocalBranch扩展本身根本不是您想要的,因为它们根本不在机器之间迁移——因此它们的名称。)

我通常在Mercurial中使用书签或本地创建的nambed分支。当本地命名分支被推到Subversion时,它将丢失其名称,并且书签是暂时的。这让你避免了大量的存储库,保持了东西的整洁(er)

推拉“在svn的背后”可能会不时导致一组稍微混乱的修订,因为当您推到Subversion时,哈希必然会改变

这个分机:看起来像你要找的