我有一台装有最新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上进行任何更改的设置吗?
更多细节:
答案 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插件:
在卸载最后一个(可选)插件(“ 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中遇到锁定错误:)