【问题标题】:How can I prevent TortoiseSVN database locking up?如何防止 TortoiseSVN 数据库锁定?
【发布时间】:2018-11-09 13:47:34
【问题描述】:

我有一台装有最新 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 Drive 或任何其他云软件同步文件夹。
  • 它是 TortoiseSVN 特有的,当我从 Eclipse 提交更改时,我从未收到此错误。
  • 我真的不认为这是一个 TortoiseSVN 错误,我最近从版本 1.9.6 更新到 1.11.0 并且两者都有同样的问题,如果这真的是一个错误,它肯定会被修复......对? :)
  • 我是目前唯一参与这些项目的开发人员(这不是我的本地数据库过时或存在冲突的问题)。

【问题讨论】:

  • 工作副本在网络共享上,是吗?
  • 我希望,至少它可以解释问题!但是不,该文件夹不是网络共享的,我是唯一可以本地访问计算机的用户。另外,现在我想起来了……我没有 Dropbox、Google Drive 或任何其他同步文件夹的软件。我会更新问题

标签: eclipse svn tortoisesvn subversive


【解决方案1】:

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

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

Subversion:Subversion 1.12.2,-release

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

eclipse中的SVN插件:

  • 颠覆性修订图(可选)4.0.0.I20160226-1700
  • 颠覆性 SVN 连接器 6.0.4.I20161211-1700
  • Subversive SVN Team Provider 4.0.5.I20170425-1700
  • SVNKit 1.8.14 实现(可选)6.0.4.I20161211-1700
  • M2E 项目的颠覆性 SVN 集成(可选)4.0.0.I20160226-1700

在卸载最后一个(可选)插件(“M2E 项目的颠覆性 SVN 集成”)后,探险家的乌龟不再被锁定。

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

【讨论】:

  • 我已经卸载了那个插件,但问题并没有消失。无论如何,感谢您提供帮助:)
  • 是的,有时仍会发生锁定。但大多数时候它都有效。
  • 更多见解:使用上述设置工作一段时间后,我只在树更改后遇到锁,即新的、删除的或重命名的文件/文件夹。如果提交仅包含对现有文件的更改,则不会发生锁定。
【解决方案2】:

编辑:问题实际上并不是由 Eclipse 本身引起的。它要么是 Subversive 插件,要么是 SVNKit 连接器。我已经切换到 Subclipse 和 JavaHL,问题已经完全消失了。我没试过Subclipse+SVNKit,也没有Subversive+JavaHL,我猜这些组合中的一种也能解决问题,而另一种则不会。


问题似乎是由 Eclipse 引起的。我们通常这样构建我们的 SVN 项目:

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

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

为了管理代码更改,我使用了 Eclipse 中的 SVN 同步视图,它比 TortoiseSVN 更加用户友好(只是我的看法)。对于 /source 文件夹之外的更改,我必须使用 TortoiseSVN,因为这些文件不在 Eclipse 中。

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

There is an option 在 Eclipse 中,在 Team > SVN > Performance 下,允许禁用 SVN 状态缓存...但我上次尝试时,它并没有阻止问题,它只会让 Eclipse SVN 同步变慢。

我想我在这里唯一的选择是为 Eclipse 和 TortoiseSVN 使用不同的结帐文件夹(呃……),或者在 Eclipse 中禁用 SVN 并始终使用 TortoiseSVN(呃……)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 2016-06-02
    • 2016-08-14
    相关资源
    最近更新 更多