我是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服务器的麻烦。
如果需要设置任何东西我错过了吗?
答案 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在您的客户端上存储了错误的身份验证数据。我认为应该在这种情况下再次要求凭证,但也许不会。试试这个:
打开“开始”菜单,转到TortoiseSVN群组
点击“TortoiseSVN设置”
转到“已保存的数据”
点击“身份验证数据”
然后,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
。
因此,只需取消注释,就会导致授权失败。