svnadmin - 将项目的子目录迁移到另一个项目的根目录

时间:2017-01-30 23:45:11

标签: svn migration visualsvn-server svnadmin

这就是我想要完成的事情

Project_A
    -SubFolder_Y
         Project_X

Project_B
    Project_X

所以基本上将子目录'Project_X'从项目A迁移到项目B的根目录并进行所有修订。

我正在尝试使用svnadmin命令,因为我可以访问SVN服务器。

我知道我想要这样做:

1. svnadmin dump \\Repositories\Project_A > ProjectA.dump
2. svndumpfilter include Project_X --drop-empty-revs --renumber-revs < Project_A.dump > Project_X.dump 
3. svnadmin load --ignore-uuid \\Repositories\Project_B <Project_X.dump

这似乎不起作用,我在这里缺少什么?

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

首先,您必须阅读SVNBook chapter about repository history filtering。在使用某些测试存储库测试之前,不要将svnadmin load转储到真实存储库。您必须确保svndumpfilter生成的筛选转储包含您期望的所有数据并希望它包含所有数据。

  

上面的代码也会将'SubFolder_Y'作为父代   我不想要的Project_X

上面链接的文档章节对此进行了介绍。 SVNBook建议您使用文本编辑器或通过脚本重写或删除父路径(在您的情况下为SubFolder__Y)手动编辑转储文件。此任务的复杂性取决于转储文件中的修订数量,其大小,存储库路径等。但一般来说,这是一项非常重要且具有潜在危险的任务,我建议您不要手动修改转储文件。 / p>

在加载过滤后的转储后,您可以将Project_X移动到新存储库的根目录,而不是重写父路径。

命令应如下:

svn move FROM-URL TO-URL -m "ENTER LOG MESSAGE"