我最初为不同的项目设置SVN结构时,决定将每个不同的项目放在单独的存储库中。
这样做一段时间以来一直很有效,但我开始考虑将所有这些存储库合并成一个总的“公司范围”存储库。这样,当我让员工检出源代码时,他们可以从顶部检出,并获得所有不同项目的所有代码。
我在网上找到了svn-merge-repos
命令,但没有太多用户反馈或有用的使用提示。这是连接存储库的最佳方法,以便不会丢失我的历史数据,还是有更好的方法?我应该注意哪些陷阱?
谢谢。
我最初为不同的项目设置SVN结构时,决定将每个不同的项目放在单独的存储库中。
这样做一段时间以来一直很有效,但我开始考虑将所有这些存储库合并成一个总的“公司范围”存储库。这样,当我让员工检出源代码时,他们可以从顶部检出,并获得所有不同项目的所有代码。
我在网上找到了svn-merge-repos
命令,但没有太多用户反馈或有用的使用提示。这是连接存储库的最佳方法,以便不会丢失我的历史数据,还是有更好的方法?我应该注意哪些陷阱?
谢谢。
我最近也需要做类似的事情,我所做的是:
* svnadmin create X:\Repositories\RepositoryC
* svn mkdir http://localhost:8080/svn/RepositoryC/branches --message "Added the branches folder."
* svn mkdir http://localhost:8080/svn/RepositoryC/tags --message "Added the tags folder."
* svn mkdir http://localhost:8080/svn/RepositoryC/trunk --message "Added the trunk folder."
* svn mkdir http://localhost:8080/svn/RepositoryC/trunk/A --message "Added the trunk\A folder."
* svn mkdir http://localhost:8080/svn/RepositoryC/trunk/B --message "Added the trunk\B folder."
* svn checkout http://localhost:8080/svn/RepositoryC RepositoryC
* svnadmin dump X:\Repositories\RepositoryA > RepositoryA.dmp
* svnadmin dump X:\Repositories\RepositoryB > RepositoryB.dmp
* svnadmin load X:\Repositories\RepositoryC --parent-dir trunk\A < RepositoryA.dmp
* svnadmin load X:\Repositories\RepositoryC --parent-dir trunk\B < RepositoryB.dmp
* svn checkout http://localhost:8080/svn/RepositoryC RepositoryC
注意:上面的代码假定托管你的Subversion仓库的机器上,仓库位于X:\Repositories下,Subversion服务器的URL为http://localhost:8080,并且其中一个仓库在工作文件夹中。svnadmin load --ignore-uuid
加载结果转储。
请注意,所有修订版将重新编号。
请查看SvnDumpTool readme中的合并部分。