将 SVN 工作空间指向具有不同父目录的不同服务器和存储库

Ori*_*gue 5 svn migration tortoisesvn

我有一个预计 EOL 的 svn 存储库,并且各个项目正在通过 svnrdump dump 和 svnadmin load 移动到新的存储库。出于讨论的目的,基本拓扑是:

old repo:  http://oldrepo/repositories/oldname/...
new repo:  http://newrepo/repositories/newname/...
Run Code Online (Sandbox Code Playgroud)

这个特定的存储库很大,我有一个开发人员希望将他的旧工作区指向新存储库。我看到的问题是 TortoiseSVN 允许重新定位事件,并且通过输入 URL http://newrepo/repositories/newname,初始重新定位似乎成功。但是,工作区现在认为新存储库上的目录结构如下所示:

http://newrepo/repositories/newname/oldname
Run Code Online (Sandbox Code Playgroud)

有没有办法删除工作区对旧名称的引用?由于额外的非预期目录,SVN 更新失败。我能想到的唯一选择是让该开发人员从新存储库中签出整个所需的工作空间,然后将 WIP 文件复制到新工作空间中。客户端还有其他选择或解决方案吗?

编辑:工作目录是c:\SVN\FolderA。执行命令:svn relocate http://newrepo/repositories/newname/Folder1/FolderA返回以下错误:

svn: E155024: Invalid relocation destination: 'http://newrepo/repositories/newname/Folder1/FolderA' (does not point to target)
Run Code Online (Sandbox Code Playgroud)

我不确定这有多相关,但原始存储库位置 oldrepo 是一个文件夹,但在新存储库中, newrepo (即:http://newrepo/repositories/newname)是新存储库的根级别。另外,我应该指出,在迁移过程中,更改被保留,但单个版本号没有保留。

Gil*_*anc 1

您的开发人员可能必须:

  • 断开他的项目与旧工作区的连接
  • 将其未提交的更改(如果有)保存在其他地方
  • 删除他的项目
  • 从新工作区导出他的项目
  • 将他未提交的更改(如果有)重新应用到项目