我正在尝试将某些项目从一个SVN迁移到另一个SVN。这两个存储库都有其他具有多个修订的项目。我正在尝试将项目与其提交历史一起从一个存储库移动到另一个存储库。修订号并不重要,理想情况下,我只想复制提交历史记录的过去一年,因为我们不需要更多,我认为复制整个历史记录太耗时了。
我看过svnsync,但我认为它不适合我的目的,因为新的存储库不是从0开始的
发布于 2014-03-07 17:16:59
要将存储库转储为特定格式,您可以使用:
$ 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手册。
发布于 2014-03-07 16:54:37
如果修订的数量很少(比如少于20个),那么我会手动完成。在旧版本中更新到修订版,将文件复制到新版本并提交。重复50次。
您可以创建一个脚本,其中包含要更新旧工作副本的修订版列表,并在循环中执行更新/复制/提交过程。
在TortoiseSVN安装文件夹中有命令行应用程序svn
和svnlook
,它们可以帮助您编写上面提到的脚本。
https://stackoverflow.com/questions/22254731
复制相似问题