我有一个 Subversion 存储库,其中包含多个项目。我想“切掉”一个或多个这些项目并将它们移动到自己的存储库中,理想情况下是完全保真(即保持所有版本历史不变)。
这甚至可能吗?如果是这样,技术是什么?
编辑/澄清:我知道分支和标签。这不是我要问的。我想获取一个现有的存储库并将其拆分为几个较小的存储库,可能在不同的物理介质上。
我有一个 Subversion 存储库,其中包含多个项目。我想“切掉”一个或多个这些项目并将它们移动到自己的存储库中,理想情况下是完全保真(即保持所有版本历史不变)。
这甚至可能吗?如果是这样,技术是什么?
编辑/澄清:我知道分支和标签。这不是我要问的。我想获取一个现有的存储库并将其拆分为几个较小的存储库,可能在不同的物理介质上。
首先获取 SVN 存储库的最新转储:
svnadmin dump repo/
接下来,过滤存储库,使用类似的东西
svndumpfilter include --drop-empty-revs --renumber-revs trunk/myProj1 trunk/myProj2
然后,创建新的仓库,并添加主干、标签和分支目录(如果没有这 3 个目录,之后的步骤将失败):
svnadmin create newRepo
svn co file:///tmp/newRepo newRepo-checkout
svn mkdir newRepo-checkout/trunk/ newRepo-checkout/branches/ newRepo-checkout/tags
svn commit -m "Core directory structures created" newRepo-checkout/
有了这 3 个目录,现在可以加载转储:
svnadmin load newRepo
加载完成后,您就可以开始使用新的仓库了!
几个教程链接:
http://grumbel.blogspot.com/2008/09/splitting-svn-repository.html
http://2tbsp.com/node/88