工作副本已锁定


70

我正在开发使用Subversion作为版本控制的网站,但收到“工作目录锁定”错误消息

这是故事:

我有

PC-A:

  • Windows XP专业版
  • VisualSVN 2.5.2
  • 乌龟SVN 1.7.3

PC-B:

  • Windows XP主页
  • 乌龟SVN 1.7.3

我已经使用VisualSVN在PC-A上创建了存储库。

从PC-B,我将http:\\ PC-A:81 \ svn \ test \ trunk检出到D:\ xampp \ htdocs \ test-lalala。

从PC-A,我还将签出http:\\ PC-A:81 \ svn \ test \ trunk到D:\ xampp \ htdocs \ test-lalala。

我创建了一个运行my-post-commit.bat文件的提交后挂钩,因此当我提交到http:\\ PC-A:81 \ svn \ test \ trunk时,文件夹D:\ xampp \ htdocs \ test-lalalaon PC- A将更新,以便其他人可以看到结果。

"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\xampp\htdocs\test-lalala" --username myusername --password mypassword --config-dir "C:\Program Files\VisualSVN Server\conf" 

在PC-B上,创建index.php文件,然后提交。当我提交时,我收到此错误消息

错误信息

在PC-A上,我尝试右键单击D:\ xampp \ htdocs \ test-lalala TortoiseSVN>清理,然后检查“清理工作副本状态”和“包含外部文件”(默认情况下选中)。尝试添加文件并提交,但仍然收到相同的错误消息。

我尝试在.svn文件夹中查找锁定文件,但是没有锁定文件。我还尝试删除PC-A D:\ xampp \ htdocs \ test-lalala上的工作副本,然后再次签出,但是当我提交时,仍然收到相同的错误消息。

如何解决此错误信息?所以当我提交时,文件夹将自动更新?


Jonathon J Howey的回答对我有用。我不得不再做一件事,那就是在清理之前关闭我的视觉工作室。
阿基尔·阿奎尔

Answers:


195

每次遇到工作副本锁定错误时,我都会运行“清理”。之后,一切恢复正常。

您可以在命令行中执行svn cleanup该操作,该操作还会删除锁定文件。

注意:在上一级目录上执行此操作,大多数情况下应该可以解决。


18
当我从锁定位置清除一个目录级别时为我工作
waqaslam 2013年

它可以在Ubuntu上运行,我在客户端上具有Ubuntu,在服务器上具有Linux,并且可以运行。实际上,这个问题在Linux上比在Windows上更经常发生。
Yevgeniy Afanasyev 2015年

5
如果使用GUI,不要忘记选中“ Break locks”复选框。
Manish Dubey

36

对于仍然存在此问题(错误:工作副本'{DIR}'已锁定。)的任何人,我有您的解决方案:

我发现,当TortoiseSVN窗口之一崩溃时,它会留下一个TSVNCache.exe,该文件仍具有一些可用于您的工作副本的句柄,并导致出现您所看到的Lock问题(并且还阻止了Clean Up的工作)。

因此,要解决此问题:

要么

1a)使用Process Explorer或类似工具删除TSVNCache.exe拥有的句柄

1b)..甚至更简单,只需使用任务管理器杀死TSVNCache.exe

然后

2)右键单击-> TortoiseSVN->清理。仅需要检查“清理工作副本状态”。

从那里开始,愉快的更新/提交。您可以通过执行SVN Update来重现Lock行为,然后在Update完成之前迅速杀死它的TortoiseProc.exe进程。


只是进行清理对​​我有用,但这是在注销并重新启动后进行的,因此可能以这种方式终止了该过程。
RedEyedMonster

我让Visual Studio与AnkhSVN一起运行,并且必须在清理工作之前将其关闭。
xenoclast

2
经过大量搜索,我终于找到了这个。这应该更明显,因为这是唯一对我有用的东西!
JohanLejdung

22

在顶级目录级别运行“清理”。


2
由于文件夹/文件添加时svn客户端已锁定,并且未正确提交,可能会出现“工作目录已锁定”错误,并且可能会通过清理修复。
王子

1
我没有在<b> top目录</ b>级别中运行清理时遇到了相同的错误
Vincent

4
+1表示“在顶级目录级别”。没有人提到它,这似乎很重要。
Melebius

11

我通过删除WC_LOCK表中SQLite“ .svn \ wc.db”文件锁定记录中的WC_Lock记录解决了该问题。

只需使用SQLite编辑器打开“ wc.db”文件并执行

从WC_LOCK删除

解决方案是在另一个我现在找不到的链接中给出的。但是确实可以解决;不用担心删除所有目录


SQL Lite的数据库浏览器与SQLLite编辑器相同吗?
Mostowski崩溃

是的,应该如此。对我来说,我通常只使用Firefox扩展程序来编辑数据库
sgupta

7

我通过删除隐藏的.svn文件夹来修复它,并用新的签出取代了它,.svn并且可以正常工作。可能是这个隐藏的文件夹搞砸了!


5

我相信它对你来说很好

转到顶级SVN文件夹。

右键单击文件夹(包含您的svn文件)-> TortoiseSVN->清理

这肯定会解决您的问题。


3

如果您是Windows人士,并且使用“ Tortoise SVN”用户。

选择文件。右键点击。选项'Tortoise SVN'->获取锁定。使用选项“隐藏锁”。


3

您只需一步即可解决它。

第1步:打开终端并转到您的项目,然后执行命令“ svn cleanup”和“ svn update”


那是两个步骤; P ...甚至三个步骤
D Ie18'Aug

1

我最终使用了export命令而不是update命令。这是提交后的钩子

“ C:\ Program Files \ VisualSVN Server \ bin \ svn.exe”导出“ D:\ xampp \ htdocs \ test-lalala”-安静-非交互式--force --username myusername --password mypassword


1

错误“工作副本已锁定”,只需执行以下步骤:

  1. 更新时在哪个目录中出错
  2. 转到其父目录
  3. 在父目录中,转到“ .svn”隐藏目录
  4. 删除名称为“ lock”的文件
  5. 清理并完成

您可以正确更新svn,而不会出现错误



1

当您收到工作副本错误时,只需运行 svn cleanup清理所有不需要的文件和文件夹。如果仍然出现错误,请执行一件事。

将您的文件复制到其他驱动器,然后删除工作副本文件夹或文件,然后进行更新,它将获取新文件,并在此之后用更新后的副本替换并提交相同的文件。


0

我遇到了与您描述的问题相同的问题。它似乎是Tortoise 1.7.3上的错误。我已经恢复到1.7.2,执行了清理和更新。现在我的SVN /乌龟又能正常工作了




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.