我在服务器上安装了SVN存储库。我总是习惯在本地工作,但现在我需要检查服务器内的存储库。
嗯,这是配置:
<Location /svn>
DAV svn
SVNPath /srv/svn/xxx
AuthName "XXX Repository"
AuthType Basic
AuthUserFile /srv/svn/xxx/.svn.passwd
Require valid-user
#SSLRequireSSL
</Location>
我做了svn checkout http://www.example.com/svn mydir/
如果我进行SVN更新,一切都很好但是如果我做了一个svn提交,它会说:
svn: E160013: Commit failed (details follow):
svn: E160013: '/svn/!svn/me' path not found
我可以解决这个问题,将这一行放在配置之上:
alias /svn /srv/svn/tomsnetwork.it
但如果我这样做,`svnupdate¡不再起作用了(它说:
Redirecting to URL 'http://www.example.com/svn':
Redirecting to URL 'http://www.example.com/svn':
svn: E195019: Redirect cycle detected for URL 'http://www.example.com/svn'
答案 0 :(得分:0)
您的更新和提交命令如何?
也许你应该试试SCM-Manager。它是一个开源工具,您可以通过简单的GUI轻松管理您的subversion存储库。无需编辑配置文件。只需下载并启动独立版本即可。不必安装其他软件,插件可以轻松扩展其功能。它还可以管理git和mercurial存储库。
答案 1 :(得分:0)
删除别名。
自svn co
起作用后,看起来所有内容都设置正确。即使svn up
也有效。
如果问题是您的授权文件,则结帐将无效。
问题可能是由于目录权限。谁拥有目录树/srv/svn/xxx
?我有一种感觉,你拥有它,因为你是创建目录的人。不幸的是,Apache httpd取决于操作系统,属于http
,httpd
,apache
,wwwrun
或各种不同用户之类的用户。查看哪个用户拥有httpd
进程,并确保整个存储库目录树归该用户所有。
假设正在运行httpd
的流程用户为httpd
,此命令会将存储库目录的所有者和组更改为正确的所有者:
$ sudo chown -R httpd:httpd /srv/svn/xxx
此外,完成此操作后,请确保所有文件和目录的权限对于此用户(仅限此用户)是可读/写的:
$ sudo chmod -R u+a /srv/svn/xxx