我正在尝试将某些项目从一个SVN迁移到另一个SVN。两个存储库都有其他具有多个修订版的项目。 我试图将项目从一个存储库移动到另一个存储库及其提交历史记录。修订号并不重要,理想情况下,我只想复制过去一年的提交历史记录,因为我们不需要更多,我相信复制整个历史记录会花费太多时间。
我看过svnsync,但我认为它不符合我的目的,因为新的存储库不是从0开始
答案 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安装文件夹中,有命令行应用svn
和svnlook
可帮助您制作上述脚本。