如何将 SVN 存储库作为文件夹复制到另一个具有历史记录的存储库 [英] How to copy SVN repository as a folder to another repository with history

查看:50
本文介绍了如何将 SVN 存储库作为文件夹复制到另一个具有历史记录的存储库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有 2 个存储库

http://mysnv/svn/proj1/trunk

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

    • proj2_folder1
    • proj2_folder2
    • 如何将带有历史记录的proj2复制到proj1的trunk中成为文件夹,得到如下结果

      How can I copy the proj2 with history to be a folder in the trunk of proj1 to get the following result

      http://mysnv/svn/proj1/trunk
      

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

          Actually what I want to do is to have only one SVN repository with all the content of proj2 and the history in the folder proj2 in http://mysnv/svn/proj1/trunk

          这是我使用的 SVN 版本:

          This is the SVN version I'm using:

          svn,版本 1.7.8 (r1419691)

          svn, version 1.7.8 (r1419691)

          我找到了这篇博客,但是svn合并不清楚对我来说.它位于./foo/trunk:proj1?

          I've found this blog, but the svn merge is unclear to me. Where is it located ./foo/trunk:proj1?

          我的 svn 文件夹结构类似于 /data/svn/repos/ 而我没有看到主干文件夹.

          My svn folder structure is like /data/svn/repos/ and I do not see the trunk folder.

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

          I'm looking for a command to make the copy, without influencing my main project proj1.

          推荐答案

          物理聚合

          • 从 proj2 存储库创建所需路径的转储(svnadmin dump | svndumpfilter --include --include > dumpsvnrdump URL-proj2_folder1 > dump1 & svnrdump URL-proj2_folder1 > dump2)
          • 将转储加载到 proj1 更改父文件夹(svnadmin load --parent-dir trunk )
          • 检查 proj1/trunk/trunk 下是否存在 proj2_folder1 和 proj2_folder2 的数据(第二个主干是 repo1 转储中的基本路径)
          • 将子主干文件夹重命名为 proj2 (svn mv)
          • Create dumps of needed paths from proj2 repository (svnadmin dump | svndumpfilter --include --include > dump or svnrdump URL-proj2_folder1 > dump1 & svnrdump URL-proj2_folder1 > dump2)
          • Load dump(s) into proj1 with changed parent folder (svnadmin load --parent-dir trunk < dump)
          • Check presence of proj2_folder1's and proj2_folder2's data under proj1/trunk/trunk (second trunk is base path in dump of repo1)
          • Rename child trunk-folder into 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

          这篇关于如何将 SVN 存储库作为文件夹复制到另一个具有历史记录的存储库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆