我正在尝试使用以下方法将存储库导入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
现在我有两个问题:
svn import
是必须的,应该以{{1}}完成吗?如果是,为什么我不能作为普通用户提交? (我给予777权限)答案 0 :(得分:2)
最后,我自己得到了答案
问题是/var/www/svn/repos/db/transactions
和/var/www/svn/repos/db/txn-protorevs
中的文件没有访问权限。我给了这些文件夹777的权限,但是,我忘了给这些文件夹里面的文件授予权限。
因此,需要正确检查所有文件夹和文件的权限。谢谢。
答案 1 :(得分:1)
我的方案是在服务器上创建一个新的repo并尝试从客户端导入。
我将所有组和用户权限以及文件权限与同一服务器上的工作仓库进行了比较。尽管有所有匹配,但我收到了相同的"无法写..."反复出错。
我决定检查服务器和客户端上的svn版本,发现一个小的不匹配。服务器运行1.7.9,客户端运行1.7.19。我回去创建了另一个回购,但是使用" - 兼容1.6之前"旗: " svnadmin --pre-1.6-compatible创建repo-new"
之后一切正常。