如何防止TortoiseSVN数据库锁定?

时间:2018-11-09 13:47:34

标签: svn tortoisesvn

我有一台装有最新TortoiseSVN版本(1.11.0 x64)的Windows 7 PC。几乎每次我要将更改提交到服务器时,都会出现以下错误:

Commit failed (details follow):
Failed to load properties: sqlite[S5]: database is locked
Error unlocking locked dirs (details follow): sqlite[S5]: database is locked

Another process is blocking the working copy database, or the underlying filesystem does
not support file locking; if the working copy is on a network filesystem, make sure file
locking has been enabled on the file server.

修复起来很容易-我只要转到项目根文件夹,进行SVN清理,然后提交就可以正常工作了。但是,如果我要在几分钟后再次提交,则很可能再次失败,并迫使我再次进行清理。 真的烦人。

有什么办法可以防止这些锁定的发生?我可以在TortoiseSVN上进行任何更改的设置吗?

更多细节:

  • 我的SVN项目和TortoiseSVN本身都放置在本地HDD(无网络文件系统)中,并且它们的文件夹也已从防病毒软件中排除。
  • 工作副本文件夹不是网络共享的(本地也不是,我是该PC上的唯一用户)。
  • 我也没有Dropbox,Google云端硬盘或任何其他同步文件夹的云软件。
  • 它是特定于TortoiseSVN的,当我从Eclipse提交更改时,我从未遇到此错误。
  • 我真的不认为这是一个TortoiseSVN错误,我最近从1.9.6版本更新到1.11.0,并且都存在相同的问题,如果这确实是一个错误,则肯定会得到解决。 ? :)
  • 我是当前正在处理项目的唯一开发人员(这不是我的本地数据库过时或存在冲突的问题。

2 个答案:

答案 0 :(得分:1)

我还认为该锁定是由eclipse插件引起的。这里有一些有关我的设置以及如何解决该问题的详细信息:

Tortoise:TortoiseSVN 1.12.2,内部版本28653-64位,2019/08/04 13:03:09

Subversion:Subversion 1.12.2,-版本

Eclipse:Spring Tool Suite版本:3.9.6.RELEASE(Eclipse 2018-09(4.9.0)Eclipse)

Eclipse中的SVN插件:

  • 颠覆性修订图(可选)4.0.0.I20160226-1700
  • 颠覆性SVN连接器6.0.4.I20161211-1700
  • SVN颠覆性团队提供者4.0.5.I20170425-1700
  • SVNKit 1.8.14实现(可选)6.0.4.I20161211-1700
  • 用于M2E项目的SVN颠覆性集成(可选)4.0.0.I20160226-1700

在卸载最后一个(可选)插件(“ M2E项目的Subvertive SVN集成”)后,不再出现对资源管理器乌龟的锁定。

所以我很高兴,因为我在eclipse中使用的所有功能仍然可以使用,而且资源管理器中的乌龟也可以使用。通常,我只在Eclipse中使用“团队/显示注释”上下文菜单,而在乌龟中通过资源管理器执行的所有其他SVN东西。

答案 1 :(得分:0)

问题似乎是由Eclipse引起的。我们通常会像下面这样构造SVN项目:

/trunk
  /docs
  /etc
  /scripts
  /source
    /pom.xml
    /src/main/...

我签出整个主干(或某些分支),然后将源项目导入Eclipse。

要管理代码更改,我在Eclipse中使用SVN同步视图,该视图比TortoiseSVN更用户友好(据我个人观点)。对于/ source文件夹之外的更改,我必须使用TortoiseSVN,因为这些文件不在Eclipse中。

问题是,显然,Eclipse具有一些后台进程,该进程每隔几分钟就会“更新SVN缓存”,即使您没有更改该项目的任何内容,也只需在工作区中打开它即可。并弄乱了TortoiseSVN,因此除非我执行清理工作,否则都会出错。

我想我唯一的选择是为Eclipse和TortoiseSVN使用不同的检出文件夹(ugh ...),或者在Eclipse中禁用SVN并始终使用TortoiseSVN(ugh ...)。 There is an option在Eclipse中,在“团队”>“ SVN”>“性能”下,可以禁用SVN状态缓存。我想这应该可以解决这个问题...或者也许现在我会在Eclipse和Tortoise中遇到锁定错误:)