SVN提交因“授权失败”错误而失败

时间:2010-02-01 16:45:25

标签: svn

我是SVN的新用户,我遇到了SVN提交命令的问题。

我使用TortoiseSVN 1.6.6,以及使用WMware作为服务器的Ubuntu Subversion映像。

我确实在SVN服务器上创建了一个存储库,我可以轻松地从存储库中检出文件,但是提交。

当我提交时,它总是显示问题。

Command: Commit  
Error: Commit failed (details follow):  
Error: Authorization failed  
Finished!:   

此问题仅显示在VM上具有SVN服务器存储库的本地客户端上。我尝试用TortoiseSVN在本地机器上创建存储库,在Commit上没有问题。我也在服务器机器上尝试了一个工作副本,在Commit上也没问题。

有人遇到过这个问题吗?来自VM SVN服务器的Checkout没有任何问题,但它显示本地客户端提交到VM服务器的麻烦。

如果需要设置任何东西我错过了吗?

11 个答案:

答案 0 :(得分:16)

授权失败了。这意味着第一步,身份验证成功。

所以:用户名/密码是正确的,并被您的服务器接受。但后来不允许该用户访问路径/资源。

检查基于路径的授权文件(conf / authz)并确保用户拥有权限。

答案 1 :(得分:11)

对我而言,这是因为服务器迁移。 在svnserve.conf中,我忘记取消注释:

auth-access = write
password-db = passwd

答案 2 :(得分:6)

如果服务器使用svnserve来提供存储库(这意味着您使用的是svn:// URL),那么您应该检查存储库中的文件conf/svnserve.conf。默认配置允许匿名读取,但只允许经过身份验证的写访问IIRC。

答案 3 :(得分:4)

我与RapidSVN(或从CLI使用svn commit时遇到完全相同的问题)。问题结果是我使用匿名Subversion访问(svn://链接)检出了回购:

svn checkout svn://svn.r-forge.r-project.org/svnroot/rsitesearch/

但是当使用此链接进行回购时,您无法提交更改。所以解决方案是使用允许通过SSH进行Developer Subversion Access的svn+ssh://链接:

svn checkout svn+ssh://developername@svn.r-forge.r-project.org/svnroot/rsitesearch/

对于其他SVN服务,提交的正确链接可以是https://。实际上我有更好的https://结帐经验,所以先尝试一下。

现在svn commit应该按预期工作。

(这与Wug在对OP的评论中建议的解决方案相同。)

答案 4 :(得分:4)

我的经历与bluebrother相似 我正确地创建了一个新的存储库,但没有正确设置用户。它让我签出但不提交

编辑 repoLocation /conf/svnserve.conf并取消注释该行

  

password-db = passwd

编辑 repoLocation / conf / passwd并为passwd添加用户名和密码,例如

  

tim =密码

答案 5 :(得分:3)

首先,您可以从Tortoise浏览存储库吗?如果可以,那么您访问存储库的用户帐户没有write(= commit)权限。

如果您既不能浏览也不能提交:可能是Tortoise在您的客户端上存储了错误的身份验证数据。我认为应该在这种情况下再次要求凭证,但也许不会。试试这个:

  1. 打开“开始”菜单,转到TortoiseSVN群组

  2. 点击“TortoiseSVN设置”

  3. 转到“已保存的数据”

  4. 点击“身份验证数据”

  5. 中的“清除”

    然后,Tortoise将忘记所有存储的密码,并在您下次尝试访问VM时再次询问。

答案 6 :(得分:3)

如果您使用svnserve提供SVN访问权限(即您的存储库网址看起来像svn://server/repo),请确保您的服务器允许写访问权限。在某些安装中,默认情况下,服务器以只读访问权限启动:

# The -R option enforces read-only access, i.e. write operations to the
# repository (such as commits) will not be allowed.
SVNSERVE_OPTIONS="-d -R -r /srv/svn/repos"

答案 7 :(得分:1)

使用http协议而不是svn协议检出您的文件。我遇到了与使用svn://协议检出文件时相同的问题。后来我将协议更改为http://,一切正常。

答案 8 :(得分:0)

另外,请仔细检查服务器上的实际存储库是否具有服务器进程(svnserve或Apache)要写入的正确文件权限。这可能没问题,因为你能够以其他方式创建存储库,但是为了以防万一而值得检查。

答案 9 :(得分:0)

注意:我使用sasl,我发现它很难区分大小写,并且希望使用小写的用户名。即“ username123”与您的authz文件中的“ USERNAME123”不匹配,尽管它们的拼写相同,所以也许检查以确保您的用户名是小写字母(在authz文件中)

答案 10 :(得分:0)

这件事也发生在我身上。 @Stefan是正确的。 在[repo]/conf/svnserve.conf中,我们可以阅读:

If you don't specify an authz-db, no path-based access control is done.
Uncomment the line below to use the default authorization file.

刚刚超过authz-db = authz。 因此,只需取消注释,就会导致授权失败。

相关问题