2

我正在尝试使用以下方法将存储库导入 SVN:

svn import /home/guest/Desktop/first_repo/ file:///var/www/svn/repos/first_one -m "first repository"

当我触发这个命令时,我得到一个添加文件的大列表,最后它退出并出现下面列出的错误:

svn: Can't move '/var/www/svn/repos/db/txn-protorevs/1-d.rev' to
'/var/www/svn/repos/db/revs/0/2': Permission denied

我将目录和其中所有文件的权限更改repos为777。我禁用了selinux。

然后,我尝试了相同的Super User:它已被添加,我也可以结帐。但是,当我尝试提交一些更改(作为普通用户)时,我再次收到相同的错误:

Transmitting file data .svn: Commit failed (details follow):
svn: Can't move '/var/www/svn/repos/db/txn-protorevs/1-e.rev' to
'/var/www/svn/repos/db/revs/0/2': Permission denied

现在我有两个问题:

  1. svn import必须的,应该这样做Super User吗?如果是,为什么我不能以普通用户的身份提交?(我给777权限)
  2. 我做错什么了吗?
4

2 回答 2

2

最后,我自己得到了答案。
问题是其中的文件/var/www/svn/repos/db/transactions并且/var/www/svn/repos/db/txn-protorevs没有访问权限。我为这些文件夹授予了 777 权限,但是,我忘记授予对这些文件夹中的文件的权限。

因此,需要正确检查所有文件夹和文件的权限。谢谢你。

于 2013-08-22T07:10:31.387 回答
1

我的场景是在服务器上创建一个新的 repo 并尝试从客户端导入。

我将所有组和用户权限以及文件权限与同一服务器上的工作存储库进行了比较。尽管所有匹配,我还是反复收到相同的“无法写入...”错误。

我决定检查服务器和客户端上的 svn 版本,发现有一点不匹配。服务器运行的是 1.7.9,客户端运行的是 1.7.19。我回去创建了另一个仓库,但是使用“--pre-1.6-compatible”标志:“svnadmin --pre-1.6-compatible create repo-new”

之后一切正常。

于 2015-04-21T02:33:10.097 回答