SVN提交失败,访问被禁止。

29

最近我在提交SVN时遇到了问题。我使用的是VisualSVN Server 2.5.9和TortoiseSVN 1.7.12。

一开始,一个用户无法将文件提交到SVN。但该用户仍然可以访问存储库并下载更新。第二个用户在第二台电脑上正常工作。但今天,第二个用户也遇到了与第一个用户相同的问题。

提交失败

为什么会出现这种情况?如何解决这个问题?谢谢。

9个回答

27

如果问题出现在客户端,这可能是错误的原因之一。

对于客户端 TortoiseSVN,客户端凭据保存在以下位置:

Tortoise设置 / 保存的数据 / 认证数据。

我尝试提交文件时遇到了相同的错误,但我的凭据已更改。在此清除缓存将在下次提交时弹出窗口,要求重新输入正确的凭据。


这是我的问题 - 我认为它是在安装TortoiseGit之后开始的。 - Bron Davies
这里有同样的问题。有时提交会失败,我不得不清除认证数据并重新输入我的凭据才能使其再次工作。它偶尔发生,我从未找到过一个永久的解决方案。 - Rev
1
rmdir /s /q "%APPDATA%\Subversion\auth" - qujck

23

如果您的用户帐户缺少对存储库或存储库路径的访问权限,您可能会收到“被禁止”的错误;因此请检查您的用户帐户的授权设置。请确保系统管理员没有向您提供无访问权限到存储库路径。

如果您确定权限已正确设置,请再次检查您使用的URL。在Apache Subversion中,URL是区分大小写的。

另外,我建议您阅读有关Subversion和VisualSVN Server授权的文章:


谢谢您的回复。但我还是不明白。如果这是路径问题,为什么他们仍然可以浏览文件夹并将文件夹更新到他们的计算机,但无法提交?我已经将权限设置为每个人都有读/写权限。我甚至尝试添加他们帐户的读/写权限来解决问题,但它没有起作用。问题在于使用相同的配置之前是可以工作的。突然间,他们就无法提交了。 - user1995781
1
在我们公司的情况下,我们使用 Windows 上的 SVN 服务器(Visual SVN)。这允许一些用户即使路径大小写不正确也能够检出文件。但是当用户尝试提交时,它会突然检查错误的大小写。 - Nokdu
请务必检查实际的授权配置文件,不要依赖于VisualSVN Server Manager GUI。GUI仅显示存储库HEAD存在的路径,GUI不会显示已删除的路径上的路径授权。我无法从主干创建标签或分支。服务器管理员和我已经在GUI中检查了所有路径和授权规则,并且我对所有内容都具有读取权限。事实证明,我没有访问多年前删除的一些路径的权限。 - Otherside
@Otherside 使用 Get-SvnAccessRule 查看在 HEAD 版本中不存在的路径的访问规则: https://www.visualsvn.com/support/topic/00088/#Get-SvnAccessRule - bahrep

4
对我来说,解决方案是检查用户名的大小写敏感性。很多人提到URL是大小写敏感的,但似乎用户名也是如此!

2
作为这两个软件包的新用户,我遇到了完全相同的问题。正如上面发现的那样,我的解决方案是使用与存储库路径中相同的大小写字母。
这里有一个我认为很有用的提示:在VisualSVN中,您可以右键单击路径,然后单击“复制URL到剪贴板”,以确保路径是相同的大小写,在Tortoise中粘贴。

1

我的问题是我的SVN权限

我遇到了同样的问题,当我尝试提交文件到一个我已经每天工作几个月的项目时,出现了“访问'/svn/[我的路径]/!svn/me'被禁止”的问题。尝试上述步骤后,我无法解决这个问题。我还尝试从头开始拉取项目,登录/退出 SVN 等等。最终,我联系了公司的 IT 部门,发现有一个权限问题突然出现,将我的访问权限从读写更改为只读访问。IT 部门刷新了我的权限,问题得到了解决。


1
实际上,我和你一样也遇到了这个问题。如果您的提交包含不同的目录,例如外部项目,则可能会出现“Forbidden”错误。
我只用一个步骤就解决了这个问题。只需在另一个情况下提交外部项目即可。
此外,我建议您阅读有关Subversion和VisualSVN Server中的外部项目的文章:
VisualSVN团队的日常使用指南外部项目文章。它解释了SVN中外部项目的原理。

https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-externals.html


1
实际上,我和你一样遇到了这个问题。 我的Windows是Server 2008,我的Subversion信息如下: TortoiseSVN 1.7.6,Build 22632 - 64位,2012年3月8日18:29:39 Subversion 1.7.4, apr 1.4.5 apr-utils 1.3.12 neon 0.29.6 OpenSSL 1.0.0g 18 Jan 2012 zlib 1.2.5
我用以下方法解决了这个问题。 我使用了[group]选项。这个选项导致了问题。 我重新编写了authz文件内容。 我删除了group选项,并一个一个地设置。 现在已经好了。
谢谢阅读。

1

我在Mac上遇到了类似的问题,svn选择了Mac登录作为用户名,导致出现以下错误:

svn: E170013: Unable to connect to a repository at URL 'https://repo:8443/svn/proj/trunk'
svn: E175013: Access to '/svn/proj/trunk' forbidden

我使用了带有svn命令的--username来传递正确的用户名,这对我很有帮助。或者,您可以删除~/.subversion/auth文件,这样svn将提示您输入用户名。

0

我无法提交C#文件(*.cs)。最终问题是,在某个时候我安装了mod_mono,通过其配置使得*.cs文件不可访问。因此,如果只有某些类型的文件无法访问,那么很可能是一个Apache配置问题。

grep ".cs" /etc/apache2/mods-enabled/*
...
mod_mono_auto.conf:AddType application/x-asp-net .cs
...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接