4

我有 2 个存储库

http://mysnv/svn/proj1/trunk
  • proj1_folder1
  • proj1_folder2

http://mysnv/svn/proj2/trunk
  • proj2_folder1
  • proj2_folder2

如何将具有历史记录的proj2复制为proj1主干中的文件夹以获得以下结果

http://mysnv/svn/proj1/trunk
  • proj1_folder1
  • proj1_folder2
  • 项目2
    • proj2_folder1
    • proj2_folder2

实际上我想要做的是只有一个 SVN 存储库,其中包含 proj2 的所有内容以及文件夹proj2中的历史记录http://mysnv/svn/proj1/trunk

这是我正在使用的 SVN 版本:

svn,版本 1.7.8 (r1419691)

我找到了这个博客,但我不清楚 svn 合并。它位于哪里./foo/trunk:proj1

我的 svn 文件夹结构就像/data/svn/repos/我没有看到树干文件夹。

我正在寻找一个命令来制作副本,而不影响我的主要项目proj1

4

1 回答 1

10

物理聚合

  • 从 proj2 存储库(svnadmin dump | svndumpfilter --include --include > dumpsvnrdump URL-proj2_folder1 > dump1 & svnrdump URL-proj2_folder1 > dump2)创建所需路径的转储
  • 使用更改的父文件夹( svnadmin load --parent-dir trunk < dump)将转储加载到 proj1
  • 检查proj1/trunk/trunk下是否存在 proj2_folder1 和 proj2_folder2 的数据(第二个主干是 repo1 转储中的基本路径)
  • 将子主干文件夹重命名为 proj2 ( svn mv)

使用父目录将 svnrdump-ed 主干加载到新仓库的示例trunk/Project1

在此处输入图像描述

逻辑聚合

  • 创建 proj1/trunk/proj2 文件夹
  • 在 proj2 中创建两个 svn:externals(目录类型):proj2_folder1 链接到 proj2/trunk/proj2_folder1 和 proj2_folder2 链接到 proj2/trunk/proj2_folder2
于 2013-02-10T09:54:14.187 回答