如何将SVN存储库作为文件夹复制到具有历史记录的另一个存储库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将SVN存储库作为文件夹复制到具有历史记录的另一个存储库相关的知识,希望对你有一定的参考价值。

我有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
  • proj2 proj2_folder1 proj2_folder2

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

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

svn,版本1.7.8(r1419691)

我找到了this博客,但svn合并对我来说还不清楚。它在哪里位于./foo/trunk:proj1

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

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

答案

物理聚合

  • 从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数据的存在(第二个trunk是repo1转储中的基本路径)
  • 将子trunk文件夹重命名为proj2(svn mv

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

逻辑聚合

  • 创建proj1 / trunk / proj2文件夹
  • 在proj2中创建两个svn:externals(目录类型):链接到proj2 / trunk / proj2_folder1的proj2_folder1和链接到proj2 / trunk / proj2_folder2的proj2_folder2

以上是关于如何将SVN存储库作为文件夹复制到具有历史记录的另一个存储库的主要内容,如果未能解决你的问题,请参考以下文章

将 SVN 存储库复制到另一个服务器存储库的子文件夹中,并带有历史记录

如何在 Subversion 存储库之间复制保留属性但不保留历史记录

如何将文件从一个文件夹移动到同一git存储库中的另一个文件夹保留历史记录[重复]

将 SVN 存储库的一部分合并到另一个具有历史记录的存储库

如何将 SVN 存储库迁移到另一个 SVN 存储库?

我可以将单个文件从 CVS 迁移到 SVN 吗?