一个Subversion代码库是否可以被移动,但其镜像保持不变?

3

我正在尝试将一个subversion仓库迁移到新的服务器,但是保留它在原地的镜像。我已经完成了以下步骤:

  1. 导出旧仓库
  2. 导入到新仓库
  3. 设置新仓库的post-commit钩子来同步到现有的镜像

钩子内容:

#!/bin/sh

svnsync --non-interactive sync https://mirror.example.com:443/svn/iaw \
--sync-username svnsyncuser --sync-password svnsyncpass \
--source-username svnsyncuser --source-password svnsyncpass &

exit 0

可预见的是,当我尝试从新的存储库运行此钩子时,会出现以下情况:

svnsync: 'http://oldrepo.url/svn/iaw' 的选项: 无法解析主机名 `oldrepo.url': 找不到主机 (http://oldrepo.url)

问题在于该镜像使用旧存储库的url进行初始化。请问是否可以更改此设置,或者我需要从头开始使用新的镜像?
谢谢!
2个回答

2

您可以使用Subversion编辑镜像仓库 rev 0 上的修订属性。即:

svn propset --revprop -r0 svn:sync-from-url http://newrepo.url/svn/iaw \
    https://mirror.example.com:443/svn/iaw

请见 SVN 书的“仓库复制”章节中名为“svnsync记账”的方框。 (该章节链接)

0

所有镜像svn的同步信息都存储在/repo/db/revprops目录中。在该目录中,您可以看到像0、1、2这样的文件。

grep -R "http://oldrepo.url" /repo/db/revprops

找到后,将其修改为新的仓库地址,现在它就可以工作了。


你永远不应该直接编辑revprop文件。相反,使用SVN命令来完成此操作。 - user9876

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接