切掉Subversion存储库的一部分?

时间:2011-11-09 22:28:00

标签: svn version-control admin visualsvn-server version-control-migration

我有一个Subversion存储库,里面有几个项目。我想“切掉”一个或多个项目并将它们移动到自己的存储库中,理想情况下是完全保真(即保持所有版本历史记录完整)。

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

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

1 个答案:

答案 0 :(得分:2)

首先获取SVN存储库的最新转储:

svnadmin dump repo/

接下来,使用类似

的内容过滤存储库
svndumpfilter include --drop-empty-revs --renumber-revs trunk/myProj1 trunk/myProj2

然后,创建新的repo,并添加trunk,tags和branches目录(此后的步骤将在没有这3个dirs的情况下失败):

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