SVN 1.7.8 数据库被锁定,无法释放。

56

当我运行:

svn cleanup
我收到了错误信息:
svn: E200033: database is locked, executing statement 'RELEASE   s0'

或任何其他更改数据库的命令,例如 commitupdate 等。

此操作在 Linux 服务器上进行,目录为 nfs。

我可以检出另一个版本并复制我的更改,但这很麻烦,而且我认为这个错误会再次发生。

如何在工作目录上修复这个问题,并且有没有一种方法可以防止它发生。

p.s. 当前没有运行的进程,可能是 Eclipse 在某些操作中崩溃了。


你正在使用文件或Berkeley DB存储后端吗? - Craig Ringer
@CraigRinger 不相关;这是一个客户端(工作副本)错误,它使用SQLite与文件系统结合。 - alroc
@alroc 很好的观点。Zamir,工作目录在NFS上吗?因为SQLite + NFS = 可能会出问题。 - Craig Ringer
我原以为是Postgre,但我猜是SQLLite。我确实使用NFS,所以没有解决办法吗? - Zamir
14个回答

78

在我的情况下,这并没有起到帮助作用。我不得不停止目标机器上的 rcp.statd 才能使 NFS 锁定再次正常工作。 - Michael-O
1
mv命令对我失败了。如果是这种情况,我可以移动原始的工作副本目录,而不是.svn目录。 - thanos.a
感谢提供解决方法。只想补充说明,在此操作后仍然需要运行 "svn cleanup" 命令。 - Rajesh Shashi Kumar

68

我在Windows上结束了TSVNCache.exe进程,这帮助了我。


2
另外,关闭IntelliJ并按照@VictorFernandez的步骤进行操作。 - bernard paulus
1
我已经结束了这个程序,但数据库仍然被锁定。 - thanos.a
1
我不得不杀掉 explorer.exe,因为我发现它锁定了 .svn/wc.db。在Windows中使用了这个工具。https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx - Damodar Bashyal
3
杀死 TSVNCache.exe 对我有所帮助,但并没有完全解决问题。从命令行中运行 svn cleanup 完成了这项工作(但在杀死进程之前并没有完成)。 - cp.engr

7

以下步骤对我有用:

  1. 关闭所有在其他记事本/ Eclipse 中打开该存储库的文件。
  2. 运行svn cleanup。
  3. 运行svn up。

6

如果在IDE中配置了svn,可能会导致svn一直运行并锁定svn文件。关闭IDE,然后执行清理操作。或者简单地重启计算机,然后执行清理操作。


1
专业提示:基于终端的文本编辑器似乎也会计算…包括任何在“screen”会话中运行的编辑器…包括已分离的编辑器!我为此困扰了一段时间。 - Reid

4

使用

svn resolved -R .

如果您仍然遇到问题,请上一级并执行相同的命令。

当我这样做时,我会得到“svn:警告:W200033:sqlite [S5]:数据库被锁定,执行语句'PRAGMA case_sensitive_like = 1; PRAGMA synchronous = OFF; PRAGMA recursive_triggers = ON; PRAGMA foreign_keys = OFF; PRAGMA locking_mode = NORMAL; PRAGMA journal_mode = TRUNCATE;'” - clearlight

2
在Ubuntu系统中,请尝试以下命令。 ps -efa | grep 'svn'
它将列出所有正在运行的SVN进程。 杀死当前正在运行的svn进程。
Kill -9 7792
在杀死进程后再尝试,它会起作用。

1

通过关闭IDE(如netbeans/sublime)解决了我的问题。

关闭IDE并再次提交拉取请求。

请尝试此解决方案。


1
如果您正在通过NetBeans进行标记和发布,请在IDE中更改安装的svn路径。

enter image description here


0
我是如何解决这个问题的,就是重新安装TortoiseSVN 1.9.2版本。在这个过程中,我不得不关闭Explorer、Eclipse(使用svn工作区)、TortoiseSVN、SQL Dev、Notepad++等进程。
也许重新启动这些进程或重新安装TortoiseSVN解决了问题。

0

以上方法在我的Windows系统上都不起作用,我必须重新启动SVN服务来清除数据库锁,并对分支进行清理,然后所有问题都解决了。


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