2

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

但如果我这样做,`svn update¡ 不再起作用(它说:

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'
4

2 回答 2

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
于 2013-05-21T13:45:05.770 回答
0

你的更新和提交命令是什么样子的?

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

于 2013-05-21T13:26:37.517 回答