我在尝试签入文件时偶尔会遇到此问题
svn ci -m "commit message" file
Warning: post commit FS processing had error:
sqlite[S5]: database is locked
Some more info
Server side OS --> Centos6.5 and svn version 1.8.5
Client Side OS --> Centos 5.11 and svn version 1.7.7
我已经查看了一些论坛,这些是建议,但它们并不能解决我的问题
1: Check server load(Server is fairly idle when I faced this issue..checked load average,IO and memory utilization)
2: There is a longer commit is in progress at that time
3: Both server and client are in same geographic location
由于错误是间歇性的,并且我检查了 svn repo 文件是否存在(即文件是否正确签入),所以我不确定问题是什么。非常感谢任何帮助。
答案1
我相信这是一个客户端错误,而不是服务器端错误,根据您的评论,您似乎正在使用基于文件的 svn,因此唯一可以锁定的数据库是在客户端上。
尝试这个
$ cd /my/repository/.svn
$ mv wc.db wc.db.old
$ sqlite3 wc.db.old
sqlite> .backup main wc.db
sqlite> .exit
现在您有一个新的 wc.db,它不应该有任何锁定错误
如果一切正常,删除 wc.db.old
如果没有,你总是可以
$ mv wc.db.old wc.db
您将立即回到我发布此文章之前所述的位置......
但它应该可以工作....
答案2
如果您在文件系统上使用符号链接,请注意 SVN 也可能会感到困惑。
我的本地 SVN 目录实际上是指向真实本地 SVN repo 文件夹的目录符号链接。
让我们看看在移动文件时会出现什么问题:
为了使用 turtoise svn 移动文件,您可以先使用 Windows 资源管理器剪切(CTRL- X)文件,然后Paste
从 turtoise SVN 上下文菜单中选择。
通常会出现一个 SVN 弹出窗口,SVN 会将您的文件移动到存储库内。但是现在出现了“数据库已锁定”消息。
发生了什么?
好吧,经过进一步检查,我发现当我在资源管理器中从“源”目录导航到移动的“目标”目录时,目录路径发生了变化。
原因是符号链接。
首次导航到移动的“源”目录(通过目录符号链接)时,路径仍显示符号链接名称。到目前为止一切顺利。
但是当我导航到“目标”目录时,Windows 资源管理器似乎突然解析了符号链接。现在地址栏中的路径看起来不同了。
这似乎让 SVN 感到困惑,它现在可能认为有两个不同的存储库,并且文件正在从一个存储库移动到另一个存储库?
答案3
我遇到了同样的问题。对我来说,这是因为项目文件夹在 OneDrive 内,而 OneDrive 正在同步同一个文件夹。当我停止同步 OneDrive 并关闭它时,问题就解决了。希望这能有所帮助