gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:48:10 27 4
gpt4 key购买 nike

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

old repo:  http://oldrepo/repositories/oldname/...
new repo: http://newrepo/repositories/newname/...

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

有没有办法删除工作区对 oldname 的引用?由于额外的非预期目录,SVN 更新失败。我能想到的唯一选择是让这个开发人员从新的存储库中 check out 整个所需的工作区,并让他将他的 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)

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

最佳答案

我的工作副本也有同样的问题。如果将存储库 UUID 复制到新存储库(使用“svnlook uuid”和“svnadmin setuuid”命令),则可以避免此“无效的重定位目标”错误,但是当我将工作副本升级到 1.8 时,我在尝试时遇到此错误将我的工作副本重新定位到新的存储库。

我建议您只需删除工作文件夹根目录中隐藏的 .svn 文件夹,然后使用同一文件夹的新 URL 再次执行结帐。 SVN 只会为新存储库再次“版本化”文件,但它需要的时间与您执行新的 check out 一样长。如果您有任何修改过的文件,请先创建一个补丁文件,然后再重新 check out 到同一文件夹,以防 check out 命令覆盖修改后的文件。

请记住,这两条路径之间存在差异:

http://newrepo/repositories/newname
http://newrepo/repositories/newname/ <-- notice the final slash

第一个路径表示“将 newname 目录复制到目标文件夹”,第二个路径表示“将 newname 目录的内容复制到目标文件夹”。

希望这可以帮助。

关于svn - 将 SVN 工作区指向具有不同父目录的不同服务器和存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10420782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com