在我的办公室,我们正在从Visual Source Safe(6.0!)过渡到Mercurial,我正在努力寻找处理我们情况的最佳"Mercurial"方式.目前,在任何给定的项目存储库中,我们维护它的多个版本:即对于项目A,我们有一个VSS Repo for ProjA-Dev,ProjA-Rel1和ProjA-Rel2(dev repo和过去两个中的每一个)版本).
现在,(几乎)所有新工作都在dev repo中执行,然后被认为必须回滚到Rel1或Rel2的更改是手动完成的(从VSS检出的文件到他们自己的工作目录,然后使用一些diff工具只复制相应的更改).在某些时候,它被认为是一个新的版本,所以dev repo被克隆,它变成了Proj*-Rev1,之前的Proj*-Rev1变成了Proj*-Rev2,而Proj*-Dev只是继续好像什么也没发生过.在我看来,必须有一个更好的方法来实现这个更现代的工具,如Mercurial.
我目前的想法是每个项目都应该有自己的存储库,Dev/Rel1/Rel2的区别最好由不同的命名分支处理.然而,我无法弄清楚/看到/包裹我的头脑是如何在这样的环境下完成我们当前的工作流程.如果我们遵循当前的工作流程,那么dev-branch中的工作将继续有效,并且某些更改(不是全部!)将回滚到Rel分支.我知道这可以通过Mercurial的移植/移植功能来实现,这在TortoiseHg中似乎还没有得到很好的支持.而且,更重要的是,过去的答案似乎表明,最好的解决办法就是不要让事情从1开始进入这种状态.
问题是,考虑到当前的工作流程,避免这种状态的最佳方法是什么?我已经阅读了很多关于Mercurial和分支的指南(包括很多很多,在这里找到的回复)但是没有看到这个问题的明确答案.