当我向 Ubuntu Subversion 提交更改时,总是出现以下错误。
~$ sudo svn commit -m "Initial Commit" test.txt --username akira
svn: Commit failed (details follow):
svn: Can't open file '/home/svn/myrepo/db/txn-current-lock': Permission denied
我应该如何设置 txn-current-lock 的权限?我事先设置了下面的权限。
~$ sudo chown -R taro:subversion myrepo
~$ sudo chmod -R g+rws /home/svn/myrepo
答案1
正如你所说的:
命令是
sudo svn co http://192.168.253.130/svn/repository /home/akira/svn/repository --username akira
这意味着您正在通过 HTTP 从服务器检出192.168.253.130
到本地目录 /home/akira/svn/repository ,用户为akira
。SVN 服务器(集中式存储库)上的读/写权限由通过 HTTP 提供 SVN 服务的程序(可能是 Apache)决定。Apache 以 的身份运行,如果它不属于您,www-data
则无法写入。/home/svn/myrepo/db/txn-current-lock
我建议你以svn
用户身份启动 svnserve 守护进程,并使用它代替 Apache。然后 URLhttp://192.168.253.130/svn/repository
变成类似svn://192.168.253.130/myrepo
使用这个启动脚本基本上svnserve --root=/home/svn --threads
以用户身份调用svn
。如果您正在运行本地 Subversion 服务器,则可以添加--listen-host=localhost
选项以增加安全性。