如何防止TortoiseSVN数据库锁定?

问题描述 投票:1回答:1

我有一台带有最新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并且两者都有相同的问题,如果这真的是一个bug肯定会被修复...对吗? :)
  • 我是目前唯一正在处理项目的开发人员(这不是我的本地数据库过时或现有冲突的问题)。
svn tortoisesvn
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使用不同的checkout文件夹(呃......),或者在Eclipse中禁用SVN并使用始终使用TortoiseSVN(呃...)。 Eclipse中的There is an option,在Team> SVN> Performance下,允许禁用SVN状态缓存。我想它应该有助于解决问题...或者现在我可能在Eclipse和Tortoise中都有锁定错误:)

© www.soinside.com 2019 - 2024. All rights reserved.