权限问题提交到新服务器上的SVN存储库

时间:2012-02-20 17:11:46

标签: svn permissions

我最近将我的svn存储库移动到具有相同路径结构的新服务器,没有任何障碍。我更改了DNS,以便域名指向新服务器(并且interweb DNS管道知道这一点)。因此,我不必更新工作副本的repo URL(在svn信息中)。我可以检查一份新副本,但是提交更改会给我带来错误:

me$ svn ci -m "testing svn ci on new server"
Sending        trunk/www/index.php
Transmitting file data .svn: Commit failed (details follow):
svn: Can't open file '/var/svn/webrepo/db/txn-current-lock': Permission denied

好的,所以我尝试sudo相同的签到命令,出现此错误:

svn: Commit failed (details follow):
svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file.
svn: Network connection closed unexpectedly

我在论坛中看到了类似的问题,其解决方案是更新工作副本URL或修复远程权限。在我的情况下,URL应该没问题,而且我一直试图修复权限。我可以和我的本地用户一起使用。这是远程存储库权限:

drwxrwxr-x 6 svn svn 4096 Feb 20 07:33 webrepo

svn组包含我使用的远程用户帐户。我已经尝试chown'ing -R直接给该用户,以及root用户并没有运气。谢谢你的帮助!

3 个答案:

答案 0 :(得分:3)

将svn移动到在linux上运行的新服务器后,我遇到了同样的问题。 SVN作为www-data用户&回购&所有文件和子目录必须由www-data拥有。大多数情况下是这种情况,但有些文件由root拥有。通过运行

chown www-data 'new-repo' -R 

它解决了我的问题。

答案 1 :(得分:0)

同一个仓库中的所有文件都有此权限:drwxrwxr-x?用于测试目的的用户是否在适当的组中?我的意思是上面的这个权利,只有所有者用户和所有者组有权写入文件,如果你尝试提交一些东西,它可能会带来麻烦。
你有没有试过比较

  • “用户”文件
  • repo目录(递归地)

在两台机器上?

答案 2 :(得分:0)

你忘了用明文提到

  • 您用来访问repo的协议(来自上下文发现的svn + ssh://,是)
  • 在哪个用户下ssh to repo-host
  • 是共享还是单用户回购

阅读SVN手册中的Tunneling over SSH主题,以深入了解权限问题,主要围绕此文本

  

在此示例中,Subversion客户端正在调用本地ssh   进程,连接到host.example.com,以用户身份进行身份验证   harryssh(根据SSH用户配置),然后产生一个   以用户身份运行的远程计算机上的私有svnserve进程   harryssh。

和“SSH配置技巧”

简而言之 - 你有错误的所有者,也许是错误的权限