【问题标题】:svnadmin - migrating subdirectory of a project to the root directory of anther projectsvnadmin - 将项目的子目录迁移到另一个项目的根目录
【发布时间】:2017-06-16 06:56:29
【问题描述】:

这就是我想要实现的目标

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

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

提前致谢!!!

【问题讨论】:

  • ProjectA 和 ProjectB 是不同的存储库,对吧?
  • 这似乎不起作用,我在这里缺少什么? -- 究竟是什么不起作用?你有任何错误吗?
  • @bahrep 是的 ProjectA 和 ProjectB 不同。上面的代码还会将“SubFolder_Y”保留为我不想要的 Project_X 的父级。

标签: svn migration visualsvn-server svnadmin


【解决方案1】:

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

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

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

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

命令应该如下:

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

【讨论】:

    猜你喜欢
    • 2018-03-19
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    相关资源
    最近更新 更多