几个星期前,我们从CVS迁移到Subversion。 我select在Subversion中创build每个项目或文件夹(无论它们是在CVS中调用的)作为一个独立的项目,并以推荐的结构结束:
[svn_path]/Server/ -- ProjectA/ -- branches -- branch1 -- branch2 -- trunk -- ProjectB -- branches -- branch1 -- trunk
现在我们已经意识到,这不是我们项目中的做法。 不同的项目具有很强的依赖性,代码一次就被许多项目提交。 从分支机构重新集成,这是一个大问题,我们真的想重新组织仓库,所以项目是这样组合的:
[svn_path]/Server/ -- branches -- branch1 -- ProjectA -- ProjectB -- branch2 -- ProjectA -- trunk --ProjectA --ProjectB
这是怎么做的?
为了提供更多的细节,我将在CVS中添加一个代码。 在svn中select的布局,我们得到了每个项目的一个分支,但都是同名的。 现在我想回到所有的代码都应该在同一个分支,所以每个开发人员只需要看一个分支,看看哪些更改合并。
顺便说一句 – 我GOOGLE了等,没有find符合我的智慧描述;-)
我假设你有一个单一的存储库中的一切。 这使事情变得更容易。
这比你想象的要容易得多:
svn mkdir /svn/path/Server/branches/ svn mv /svn/path/Server/ProjectA/branches/ /svn/path/Server/branches/ProjectA/ svn mv /svn/path/Server/ProjectB/branches/ /svn/path/Server/branches/ProjectB/ svn mkdir /svn/path/Server/trunk/ svn mv /svn/path/Server/ProjectA/trunk/ /svn/path/Server/trunk/ProjectA/ svn mv /svn/path/Server/ProjectB/trunk/ /svn/path/Server/trunk/ProjectB/
您可能需要先制作一个存储库的副本,然后在真实的存储库上进行testing。
对于你所描述的我build议看看集市( http://bazaar-vcs.org/),git(http://git-scm.com/ )或者mercurial( http://mercurial.selenic.com/ wiki / )。 看起来你可以更好地使用分布式vcs而不是颠覆。 我个人从svn转到了集市,我对此很满意。