SVN提交错误:无法打开文件txn-current-lock,权限被拒绝。

7

我可以进行检出、更新等操作。但是当我尝试提交更改时,SVN会给出以下错误:

无法打开文件“/svn/p/pokemonium/code/db/txn-current-lock”:权限被拒绝

我正在使用Windows 7 x64 SP1和最新版本的TortoiseSVN。UAC已关闭,我的帐户具有读取和写入访问权限,等等。

我可以成功提交到其他SVN存储库。


2
关于宝可梦的问题是严格禁止的。 ;) 你尝试过清理吗? - Doug Chamberlain
你尝试过使用“--no-auth-cache”命令行开关吗?也许你缓存了一些无效的凭据? - serg10
7个回答

12

对我来说,这最终成为了服务器权限问题。 我将我的仓库放在Linux系统上,并通过ssh使用svnadmin。 为了方便起见,我已经以root用户身份执行了创建仓库命令。我想将我的Windows工作站上的源代码放入仓库中,所以使用TortoiseSVN设置了trunk/branches/tags。 服务器上包含仓库的目录归root所有,而TortoiseSVN则以apache身份登录。 我将服务器上的目录所有者更改为apache:apache,然后一切顺利进行。

chown apache:apache -R my_repo_root

谢谢。在加载转储后,我不得不重新为服务器上的repo文件设置所有者,必须使用chown www-data:www-data -R repos进行操作,因为我没有apache用户或组。 - John Lyon
这对我有用。 "chown www-data:www-data -R repository" - Dimitri
我也试过了,可以用。 - Danijel
是的。权限是罪魁祸首。然而,在Apache http下的Arch Linux中,http是所有者和组。chown http:http -R my_repo_root。谢谢。 - Barton

9

这是一个服务器配置问题。在Windows主机上,Visual SVN服务器默认使用NETWORK SERVICE帐户运行。我通过向该帐户授予对存储库文件夹的完全访问权限来解决了此问题。另一个选择是将Visual SVN服务切换到SYSTEM帐户,但这可能会带来潜在的安全风险。


1
我重新安装了Windows 7后,只是将SVN存储库从旧的Windows复制到新的Windows,出现了同样的问题。尝试了Mr. Manager提出的步骤后,在我的情况下问题仍未得到解决。确保SVN存储库文件夹的权限设置正确后,我只需删除项目/db文件夹中的'txn-current-lock'文件即可解决该问题。从那时起,我可以再次提交我的项目。

1

试试这个。

  1. 备份你的工作副本(以防万一)。
  2. 将整个工作副本复制到其他地方。
  3. 将该副本中的所有 SVN 文件夹删除。
  4. 删除你的工作副本并重新检出。
  5. 现在将你的损坏的工作副本复制/粘贴到新检出的副本上。

为了使此方法有效,请确保在执行复制/粘贴操作之前,已完全从损坏的工作副本中删除了所有 _svn 或 .svn 文件夹。

这将让你有一个工作副本,显示了你自上次提交以来修改过的所有文件,并修复了锁定问题。


1
那对我没用 :( 还尝试了新的结帐,也不行 - Myth1c
接受这个答案,因为这可能是尝试的最佳选项。 - Myth1c

0
在我的情况下,我的 Linux 服务器在断电后重新启动。由于进行了一些日志修复,文件系统仍然以只读方式挂载。重启机器可以恢复完整的功能。

0

我在Unix平台上遇到了同样的问题

重新启动SVN服务器的Apache服务解决了我的问题。

-f httpd.conf -k stop

-f httpd.conf -k start


0

权限对我也起作用了

错误

repo/db/txn-current-lock: Permission denied

修复

chown apache:apache -R my_repo_root

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