我们目前在相对较大的代码库上使用subversion.每个版本都有自己的分支,并对主干执行修复,并使用迁移到发布分支svnmerge.py
我相信现在是时候进行更好的源代码控制了,我一直在玩Mercurial.
虽然使用Mercurial管理这样的发布结构似乎有两个学派.每个版本都有自己的repo,并且针对发布分支进行修复并推送到主分支(以及任何其他更新的发布分支.)或在单个存储库(或多个匹配副本)中使用命名分支.
在任何一种情况下,似乎我可能会使用像移植一样的东西,以包含在发布分支中的cherrypick更改.
我问你 每种方法的相对优点是什么?
我有许多准相关项目,我想版本控制.在SVN中,我将它们设置为单个项目中的多个目录
/scripts #updates in sync with project1 & project2
/project1 #requires database
/project2 #requires database
/database
Run Code Online (Sandbox Code Playgroud)
当然,这个玩具示例可以使用其他SVN布局,但这种布局具有以下优点:
svn co repo/project2; svn co repo/database.如果project1很大,这可以节省大量的存储和时间.由于无法克隆mercurial repo的单个目录,因此这种范例不能很好地映射到mercurial .所以我的问题是:在mercurial中存储大型密切相关项目的最常用方法是什么?
我的想法: