配置本地SVN

时间:2013-05-20 14:55:37

标签: linux apache svn version-control

我在服务器上安装了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'

2 个答案:

答案 0 :(得分:0)

您的更新和提交命令如何?

也许你应该试试SCM-Manager。它是一个开源工具,您可以通过简单的GUI轻松管理您的subversion存储库。无需编辑配置文件。只需下载并启动独立版本即可。不必安装其他软件,插件可以轻松扩展其功能。它还可以管理git和mercurial存储库。

答案 1 :(得分:0)

删除别名。

svn co起作用后,看起来所有内容都设置正确。即使svn up也有效。

如果问题是您的授权文件,则结帐将无效。

问题可能是由于目录权限。谁拥有目录树/srv/svn/xxx?我有一种感觉,你拥有它,因为你是创建目录的人。不幸的是,Apache httpd取决于操作系统,属于httphttpdapachewwwrun或各种不同用户之类的用户。查看哪个用户拥有httpd进程,并确保整个存储库目录树归该用户所有。

假设正在运行httpd的流程用户为httpd,此命令会将存储库目录的所有者和组更改为正确的所有者:

$ sudo chown -R httpd:httpd /srv/svn/xxx

此外,完成此操作后,请确保所有文件和目录的权限对于此用户(仅限此用户)是可读/写的:

$ sudo chmod -R u+a /srv/svn/xxx