我刚将一些Subversion存储库从Windows 2003服务器迁移到Windows 2008服务器,并在此过程中将Subversion从1.5升级到1.7。签出和提交有效,但是当用户尝试锁定文件时,他们会收到以下消息:
错误:'/SVN/TempRepo_OnlyToPlayWith/Documents/Test.docx'的锁定:无法读取
错误:状态行:远程主机强行关闭现有连接 错误:(https://subversion.mysite.com)
(其中https://subversion.mysite.com是托管subversion的网站)
我一直在寻找问题所在,没有运气。
帮助我,StackOverflow - 你是我唯一的希望。
编辑:
更多的调查发现,当我不通过https,但使用文件:///直接在服务器上使用Tortoise回复时,我收到以下错误消息:
错误:无法打开文件 'd:\ SVNRepositories \ TempRepo_OnlyToPlayWith \分贝\写锁':
错误:访问被拒绝。
但是,从具有管理员权限的控制台使用命令行svn工具可以正常工作。
这真的只是读/写权限的问题吗?如果是这样,为什么checkout / commit / etc.工作,但没有锁定存储库中的文件?
更多编辑:
显然,在调查事件日志后,似乎httpd.exe一直在崩溃,指责mod_dav.so:
错误应用程序名称:httpd.exe,版本:2.2.21.0,时间戳:0x4e6a3015 错误模块名称:mod_dav.so,版本:2.2.21.0,时间戳:0x4e6a3023
答案 0 :(得分:0)
问题是这是存储库还是Apache http实例的问题。你改变了我们的两件事:存储库的版本和操作系统的版本。
让我们尝试消除Apache作为问题。关闭Apache http并使用svnserve
命令启动存储库(该命令应该与Subversion服务器一起提供)。您需要更新存储库的conf\svnserve.conf
文件以启用passwd
文件,然后更新passwd
以包含一些用户名和密码。
做一个干净的结账,然后尝试锁定。你得到同样的错误吗?如果是这样,您的存储库存在问题。从1.5升级到1.7是存储库结构中的一个重大变化。你以前做过转储和装载吗?你做过svnadmin upgrade
吗?
如果锁定问题消失,则问题出在Apache http配置上。你使用什么类型的Apache http安装?这是你自己编译的东西,还是像CollabNet的Subversion Edge那样 - 一个预构建的包?
答案 1 :(得分:0)
已经解决了。问题是我安装了CollabNet的Subversion服务器1.7.1(包括Apache服务器),然后安装了更新版本的Apache,然后从CollabNet的Apache复制了一些与SVN相关的文件文件夹到独立的Apache服务器。
安装CollabNet Subversion服务器1.7.2并使用随附的Apache服务器后,一切似乎都运行良好。