我最近(今天!)将我的 SVN 存储库移到了我自己的服务器。
我无法从我的新仓库中签出,也无法更新我当前的工作副本以使用我的新仓库(这是svnsync
我的旧仓库的副本),我通过使用以下方式执行此操作:
svn switch --relocate /old/repo/path /new/repo/path
这按预期工作,并引发了一个常见的 uuid 错误。我首先收到一个错误svn uuid's dont match
,因此我更新了uuid
svn repo 配置中的文件(repo/db/uuid)
以反映旧的uuid
。这消除了该错误。
以下所有都是我的问题,我无法对我的新 repo 做任何事情(我想更改我的旧工作副本以使用我的新 repo(我创建然后 svn 从我的旧 repo 同步到新的)。所以唯一的区别是 uuid(我手动更改),修订版完全相同(没有添加或删除任何内容)。
接下来,我尝试签出我的 repo 的新工作副本:(
首先创建新目录,然后尝试签出新的 repo):
SVN 签出错误:
# Error after trying to checkout new working copy
# 'svn co http://svn.mydomain.com/repo1 .'
svn: E175002: Server sent unexpected return value (405 METHOD_NOT_ALLOWED) in response to REPORT request for '/newtbg/!svn/me'
SVN启动错误:(与上述错误相同)
# Error after 'svn up'
svn: E175002: Server sent unexpected return value (405 METHOD_NOT_ALLOWED) in response to REPORT request for '/newtbg/!svn/me'
SVN 提交 -m “提交测试”
# Error after ' svn commit -m "test" '
svn: E175002: Server sent unexpected return value (500 Internal Server Error) in response to POST request for '/newtbg/!svn/me'
看来我可能设置错了?。
您可以在此处查看我的 vhosts 配置设置:同一服务器上多个 SVN 存储库的 vhost 设置
总结一下...!
我从旧仓库中获得了一个新的仓库svn sync'd
。我将工作副本 URL 重新定位到我的新 svn 仓库 URL ( svn sw oldUrl newUrl
),然后更新 UUID 以匹配旧仓库,从而消除错误UUID's don't match
。
更新:忘了说了,我可以使用 repo URL 通过浏览器访问我的 repo,可以看到修订号和 repo 文件,所以它确实有效!!(我想!:S)
添加了我的vhosts.conf:
<VirtualHost *:80>
ServerName svn.mydomain.com
ServerAlias svn.mydomain.com
ErrorLog /var/www/html/log/svn.mydomain.com-log
<Location "/" >
DAV svn
SVNParentPath /ebs/svn/
SVNListParentPath on
AuthType Basic
AuthName "Private - Repositries"
AuthUserFile /ebs/svn/login/svn-auth-conf
Require valid-user
</Location>
</VirtualHost>
答案1
好的!
搞定了!.. 问题是我位于负载均衡器后面(我本来打算摆脱它)。所以我从负载均衡器中删除了我的 EC2 实例,一切又开始正常工作了!..
因此,如果您遇到这些问题,请确保您没有落后于 Amazon 负载均衡器(或找到解决方法)。
一直以来,我都以为这是 SVN 的问题,但结果却是与服务器有关。我的 SVN 设置很好!
修复此问题后,我意外地提交到了旧存储库!然后,当我尝试提交到新存储库时,它不同步了。所以我不得不svnsync sync file:///path/to/repo
再次同步所有内容!
总而言之,SVN 的学习曲线很棒(新的 repo、同步、错误和最终成功!!),希望这可以为某些人节省一些时间!!
现在一切都很顺利!:D