2

我有一个 Subversion 存储库,其中包含多个项目。我想“切掉”一个或多个这些项目并将它们移动到自己的存储库中,理想情况下是完全保真(即保持所有版本历史不变)。

这甚至可能吗?如果是这样,技术是什么?

编辑/澄清:我知道分支和标签。这不是我要问的。我想获取一个现有的存储库并将其拆分为几个较小的存储库,可能在不同的物理介质上。

4

1 回答 1

2

首先获取 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

于 2011-11-09T22:56:38.157 回答