将目录迁移到其他svn存储库

时间:2009-10-04 14:05:21

标签: svn migration

我在svn存储库中有代码,称之为存储库A.现在说我需要将内容移动到存储库B,但存储库B已经为其他项目活动了一段时间。是否可以将特定目录从存储库A移动到存储库B,保留文件历史记录?通常,要将整个存储库迁移到新服务器,我会这样做:

svnadmin dump -r 0:179 rep_a > rep_a.dump
svnadmin create rep_b
svnadmin load rep_b < rep_a.dump

但是,这会对整个存储库起作用,并假设存储库B为空(我认为)。我当然可以导出有问题的目录并将其导入存储库B,但我丢失了版本历史记录。

是否有一种简单的方法可以将特定目录从A移动到B而不会丢失版本历史记录?

2 个答案:

答案 0 :(得分:3)

假设您要将trunk/project的目录rep_a复制到rep_b,您必须使用此命令:

svnadmin dump rep_a | svndumpfilter include trunk/project | svnadmin load rep_b

rep_a相关的修订将添加到rep_b的历史记录中。

当然要小心,然后再做备份。此外,如果你有共同的目录,它可能会很棘手,那么你将不得不从转储中删除目录创建(以避免两次创建相同的目录)。

答案 1 :(得分:0)

在SVN书中查看Filtering Repository History