迁移新的SVN存储库

时间:2014-03-07 15:54:47

标签: svn tortoisesvn

我正在尝试将某些项目从一个SVN迁移到另一个SVN。两个存储库都有其他具有多个修订版的项目。 我试图将项目从一个存储库移动到另一个存储库及其提交历史记录。修订号并不重要,理想情况下,我只想复制过去一年的提交历史记录,因为我们不需要更多,我相信复制整个历史记录会花费太多时间。

我看过svnsync,但我认为它不符合我的目的,因为新的存储库不是从0开始

2 个答案:

答案 0 :(得分:1)

要将存储库转储为特定格式,请使用:

$ svnadmin dump $REPO_DIR > dumpfile

您可以使用svndumpfilter指定要转储的内容:

$ svnadmin dump $REPO_DIR | svndumpfilter include $REPOPREFIX > dumpfile

这样,你只是倾销了你想要的项目。

获得转储文件后,可以使用svnadmin load加载它:

$ svnadmin load $REPO_PATH < dumpfile

问题是您无法将旧存储库加载到现有目录中。在这种情况下,您可能需要指定--parent-dir

$ svnadmin load --parent-dir /second_repo < dumpfile

完成加载后,您可以将该目录移动到另一个位置。

有关详细信息,请参阅Migrating Repository Data Elsewhere上的在线Subversion手册。

答案 1 :(得分:0)

如果修订的数量很少(少于20),那么我会手动完成。旧的,复制文件更新到新版本并提交。重复50次。

您可以创建一个脚本,该脚本具有更新旧工作副本的修订列表,并在循环中执行更新/复制/提交过程。

在TortoiseSVN安装文件夹中,有命令行应用svnsvnlook可帮助您制作上述脚本。