【发布时间】:2014-07-24 17:54:04
【问题描述】:
SVN 仓库 1:https://local.server.001/svn/repo1
SVN 仓库 2:https://local.server.002/svn/repo2
我们想将 repo1(从服务器 001)移动到 repo2 的 子文件夹,称为(例如)“repo1”。
也就是说repo1会被复制到这个位置:
https://local.server.002/svn/repo2/trunk/repo1
使用简单的文件副本执行此操作很简单。然而,我想要做的是实现这一点,同时保留被复制到 repo2 存储库的 repo1 文件夹中的文件的历史记录。
我发现了很多在 存储库 之间或不同服务器上的存储库之间进行复制的示例,但我很难找到这种特定情况的示例。
请帮忙!谢谢。
我们都是 TortoiseSVN 用户,所以任何使用 TorsoiseSVN GUI 的答案都会是一个加分项。我们的 SVN 服务器在 VisualSVN 上运行。
编辑 - 添加漂亮的插图:
编辑 2 - 仍然无法正常工作:
在 repo 1 上运行这个:sysadmin dump C:\Repositories\repo1 > D:\dump\repo1
这行得通。将repo1 转储文件复制到服务器2。然后我运行:
svnadmin load --parent-dir repo1 C:\Repositories\repo2 < D:\someDir\repo1
我被这个错误阻止了:
Started new transaction, based on original revision 1. adding path : repo1/trunk ...svnadmin: E160013: File not found: transaction '281-96', path '/repo1/trunk'
我尝试将顶级文件夹 repo1 提交到 repo2 存储库,但没有成功。
【问题讨论】:
-
说 repo1 和 repo2 都有一个 revisionX。你不能在一个仓库中有两个单独的 revisionX,所以我认为这不能做到。也许您可以将 repo1 添加为 external。
-
来自 (stackoverflow.com/questions/479361/…) 我发现了这个建议:
svnadmin dump http://oldrepo/ > mydumpsvnadmin load --parent-dir my/new/folder http://newrepo/ < mydump..--parent-dir是关键。我很想尝试一下。我想知道这如何解决您提出的修订号冲突? (供参考:我们的 repo1 是 rev 24050。repo2 更新很多,比如 rev 3000。) -
嗯,我想是可以的,见docs。
-
您的问题在这里得到解答stackoverflow.com/questions/14795887/…