我有一个svn回购,我想使用Mercurial作为它的前端。我一直在测试hgsubversion,看起来还不错。
我通常必须在编写和测试代码时在机器之间切换,我希望能够以这样的方式检查我的东西(在分支上,mq,还不确定),以便我可以使用它其他机器,在那里编辑并推回等等,只有当我准备好将它推到中央仓库时。
在git中,我会使用临时私有分支执行此操作,我会在我的计算机之间推送和拉动。然后我重新回到主分支并推到中央仓库。但我仍然习惯于hg完全不同的分支模型,我不知道哪个选择最有意义(克隆,命名分支[它们是永久的?],匿名分支,mq ...)< / p>
任何一个善变新手的提示?
答案 0 :(得分:3)
只需使用单独的回购“中央”和“进行中”。让你的中心,有意义的回购成为你推动你愿意与世界分享的变化的地方,直到你准备好释放他们,将他们推到一个单独的'-devel'回购。从你所有的机器上推拉,并在你做好准备的时候通过'推送'促进正式推进。
如果您不希望生成的更改集必然与正在进行的更改集匹配,那么您可以获得更好的并使用本身受版本控制的devel中的修补程序队列(mq),但我很喜欢暴露过程和结果一样多,所以我不去那条路。
无论哪种方式,你都需要保持正在进行的工作进入/退出-devel repo(或版本化队列),然后在准备就绪时迁移到中心。
(对问题本身的评论中建议的LocalBranch扩展根本不是你想要的,因为他们根本不在机器之间迁移 - 因此他们的名字。)
答案 1 :(得分:1)
我通常使用Mercurial中的书签或本地创建的nambed分支。当它被推送到Subversion时,本地命名分支将失去其名称,并且无论如何书签都是暂时的。这可以让你避免放置大量的存储库并保持清洁(呃)。
推送和拉动“svn后面”可能会导致稍微混乱的修改,因为当您推送到Subversion时,哈希必然会发生变化。