结合SVN存储库

时间:2011-09-30 13:13:24

标签: svn switch-statement

我有多个svn存储库,我正在尝试将其合并为一个。

我做了几次svnadmin dump {old-repo} | svnadmin load --parent-dir {new-subfolder} {new-repo}次运行来将它们全部组合起来。但有没有办法将工作副本指向新版本?

如果我执行svn switch --relocate {old-repo} {new-repo},我会收到错误:

  

svn:'{new-repo}'的存储库有uuid'70567957-ca9a-40a3-95c2-c7c7f5304040',但WC有'e7f76c56-4d0d-472c-a1f0-6eac23a5d238'

我不认为新的干净结账很容易。因为大多数WC都有一些本地更改(如DB凭据/用户映像)。甚至还有一个(必需的)缓存目录,其中包含数百万张图像缩略图,需要+/- 2天才能重新生成。

我可以强制svn忽略uuid,只接受新位置吗?

2 个答案:

答案 0 :(得分:2)

在名为svn switch --relocate: wrong uuid?的新堆栈交换站点(Unix& Linux)中有一个答案,解释了如何设置新存储库的UUID。这会产生以下后果:

  • 您只能设置1个UUID,但是您有n个旧存储库。您必须决定使用哪一个,对于这个,UUID的更改可能有效。
  • 所有其他人都必须结帐。

对不起,似乎没有完整的解决方案。

答案 1 :(得分:0)

您可以创建当前工作副本的补丁文件,然后重新签出并最终应用补丁。

创建补丁文件:

$> svn diff > ~/old_repo.patch

结帐:

$> svn co {new_repo}

应用补丁:

$> cd new_repo
$> patch -p0 -i ~/old_repo.patch