当我尝试提交我所做的更改时,我从我的svn repo中收到此错误:
[root@puppet:/opt/puppetdb] #svn commit -m "removing everything before the rebuild"
Deleting conf.d
Deleting logback.xml
Deleting puppetdb
Deleting ssl
svn: E000013: Commit failed (details follow):
svn: E000013: Can't open file '/usr/local/svn/repos/puppetdb/db/txn-current-lock': Permission denied
但该文件的权限看起来我应该可以修改它:
-rwxrwxr-X。 1 apache svn 0 Apr 27 02:18 / usr / local / svn / repos / puppetdb / db / txn-current-lock
SELinux已关闭,结果没有变化。
如果我将该文件的权限更改为全局可读/可写,我可以使提交生效。但必须有一个更好的方法!我该如何解决这个问题?
谢谢,
答案 0 :(得分:1)
您应该能够拥有/usr/local/svn/repos/
及其所有内容的写入权限。它是运行Subversion服务器(即Apache)的服务。确保它具有存储库目录的所有必需权限。
答案 1 :(得分:1)
在SVN服务器上,确保正确设置存储库(及所有子文件夹)的所有者和组。
例如,我通过以root身份从SVN服务器发出以下内容来创建一个repo:
svnadmin create / path / myrepo
最初我从SVN客户端收到“txn-current-lock”错误。在SVN服务器上,我注意到/ path / myrepo及其所有子文件夹都拥有者:root:root组。为了解决这个问题,我从SVN服务器发出以下命令:
chown -R newowner:newgroup
确保您的newowner和newgroup项目与SVN客户提供的所有者/组信息相匹配。
使用-R选项使其递归很重要。这修复了“txn-current-lock”错误。
答案 2 :(得分:1)
服务所有权只是图片的一半。对于@bluethundr,请执行以下回购操作:
-rwxrwxr-x. 1 apache svn 0 Apr 27 02:18 /usr/local/svn/repos/puppetdb/db/txn-current-lock
确保Apache用户拥有以下所有文件和子目录的所有权
/usr/local/svn/repos/puppetdb
可能就足够了。但是,如果Apache dav_svn_module的所有者是svn组的成员,并且该组具有对存储库的递归写入权限,那么它也可以使用。