为什么我在执行svn cleanup时会出现问题?

4

请帮我解决一个问题:

build@subversion:~> find /home/build/cruise-work/cruise-checkout/30.0/ | grep rep-cache.db
build@subversion:~> cd /home/build/cruise-work/cruise-checkout/30.0/
build@subversion:~/cruise-work/cruise-checkout/30.0> svn cleanup
svn: E200031: sqlite[S8]: attempt to write a readonly database
svn: E200031: Additional errors:
svn: E200031: sqlite[S8]: attempt to write a readonly database
build@subversion:~/cruise-work/cruise-checkout/30.0>

编辑1:

build@subversion:~/cruise-work/cruise-checkout/30.0> chmod g+w rep-cache.db chmod:无法访问“rep-cache.db”:没有那个文件或目录

编辑2:

我根本没有rep-cache.db文件:

> sudo find / | grep rep-cache.db root's password:
> /usr/src/subversion-1.8.11/subversion/libsvn_fs_fs/rep-cache-db.sql
> /usr/src/subversion-1.8.11/subversion/libsvn_fs_fs/rep-cache-db.h

为什么我的问题会被踩?它有什么问题吗? - Aleksei Lekomtsev
我收到了相同的错误信息。在我的情况下,包含工作副本的文件系统被挂载为只读。 - holger
当我尝试以非root权限运行svn cleanup时,我收到了这个错误。 - Jeff Hines
3个回答

2

这是由于SVN服务器上文件权限设置错误所导致的。

文件“rep-cache.db”很可能会有错误的权限设置,例如组没有对该文件进行写入访问权限。

对该文件执行简单的chmod g+w命令即可避免再次出现错误消息。


测试 chmod g+w rep-cache.db 并将结果粘贴在此处。 - Hana Bzh
我已经添加了问题的结果。 - Aleksei Lekomtsev
找到 db 文件夹。rep-cache.dbdb\rep-cache.db 中。先更改路径,然后使用 chmode... - Hana Bzh
在通过 Web 接口运行巡航控制期间,我遇到了相同的问题。 - Aleksei Lekomtsev
1
这个错误通常出现在文件没有权限时。您应该从管理员处重新检查所有权限。我告诉您的命令可以给一组中的所有人写入权限。 - Hana Bzh
显示剩余3条评论

1
在我递归更改目录权限并将所有权转移给其他用户后,我的事情似乎变得一团糟。我假设 .svn 目录现在属于那个其他用户,而我无权更改它们。仅用于清理的 sudo 解决了这个问题。

sudo svn cleanup


0
通常出现这种问题是因为您没有以超级用户身份运行svn命令。所以只需在命令前添加sudo并尝试即可。

有点危险。我个人认为更明智的做法是切换到拥有 .svn 文件的用户下(即 jenkins、subversion 等),然后再使用 sudo 命令。 - ATorras

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接