【问题标题】:Merging a part of SVN repository to another repository with history将 SVN 存储库的一部分合并到另一个具有历史记录的存储库
【发布时间】:2023-04-09 16:24:01
【问题描述】:

我必须 svn 存储库,比如说 AB。我想将B的一些目录与历史一起添加到A中。是否可以这样做。为了更清楚,以下是场景。

    repo A                                repo B
       \branches                          \branches 
             \sub-branch1                      \sub-branch B1
              \sub-branch2                      \sub-branch B2 
       \trunk                             \trunk 

我想做的是,在repo A的分支中添加sub-branch2。怎么做?

提前致谢

【问题讨论】:

    标签: svn svnadmin svndump svndumpfilter


    【解决方案1】:

    获取 repoB 的 sub-branch2 的转储:

      svnadmin dump /location/of/repoB | svndumpfilter include subbranch2 > my.dump
    

    将转储合并到 repoA 的分支中:

      svnadmin load /location/of/repoA --parent-dir branches < my.dump
    

    【讨论】:

    • 我试过了,但结果很糟糕,可能是我做错了。我以前的历史都丢失了。 parent-dir 是否仅指定顶级目录。我的存储库的真实架构比我在一个问题中提到的要深 1 级。如果我可以恢复该过程,你能建议我吗?
    • 还原是什么意思?只需从 repoA 中删除您不需要的目录 - 没有对 repoB 进行任何更改。加载过程必须显示一些消息,这些消息将帮助您了解问题所在。
    • empty revision for padding. 是我得到的错误,并且该目录也没有添加到指定目录中。您能告诉我这是什么原因吗?
    • 您可以尝试删除使用以下命令填充的空修订:svnadmin dump /location/of/repoB | svndumpfilter --drop-empty-revs --renumber-revs 包括 subbranch2 > my.dump
    【解决方案2】:

    是的,这是可能的。您需要使用svnadmin dumpsvnadmin load
    欲了解更多信息,请看这里:http://blogs.nuxeo.com/dev/2006/04/dump-load-svn-repositories-using-svnadmin-svndumpfilter.html

    【讨论】:

    • 我读了这篇文章。它很有帮助。但我有一个疑问,如何指导转储文件的位置。我认为 svnadmin load 会将转储文件驻留在根位置。如何操纵该位置以便我可以保留在所需的位置?>
    • 阅读我的回复以获得答案。您可以在 svnadmin load 命令中指定父目录。
    • 对加载命令使用 --parent-dir 选项。有关示例,请参见 jjossarin 的答案。
    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多