工作副本已锁定

时间:2012-01-06 02:01:26

标签: svn tortoisesvn visualsvn visualsvn-server

我正在使用subversion作为版本控制开发一个Web,但是“工作目录已锁定”错误消息

以下是故事:

我有

PC-A:

  • Windows XP专业版
  • VisualSVN 2.5.2
  • Tortoise SVN 1.7.3

PC-B:

  • Windows XP Home
  • Tortoise 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文件的post-commit钩子,所以当我提交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文件,然后提交。当我提交时,我收到此错误消息

error message

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

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

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

16 个答案:

答案 0 :(得分:186)

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

在命令行上,您可以执行svn cleanup,这也会删除锁定文件。

注意:在一个上一级目录上执行此操作,这应该在大多数时间解决。

答案 1 :(得分:36)

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

我发现当其中一个TortoiseSVN窗口崩溃时,它会留下一个TSVNCache.exe,它仍然有一些处理你的工作副本,这会导致你看到的锁定问题(并且还会阻止Clean Up做它的工作)

所以要解决这个问题:

无论

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

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

然后

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

从那里开始,快乐更新/提交。您可以通过执行SVN更新重现锁定行为,然后在更新完成之前快速终止它的TortoiseProc.exe进程。

答案 2 :(得分:21)

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

答案 3 :(得分:10)

我通过删除SQLite" .svn \ wc.db"中的WC_Lock记录解决了这个问题。 WC_LOCK表中的文件锁记录。

刚打开" wc.db"使用SQLite编辑器执行文件并执行

从WC_LOCK中删除

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

答案 4 :(得分:7)

我通过删除隐藏的.svn文件夹来修复它,并将其替换为新结帐.svn并且它有效。可能这个隐藏的文件夹搞砸了!

答案 5 :(得分:5)

我相信它对你很好

转到顶级SVN文件夹。

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

这肯定会解决您的问题。

答案 6 :(得分:3)

如果您是Windows用户并使用“Tortoise SVN”用户。

选择文件。右键点击。 选项'Tortoise SVN' - >得到锁。 使用选项'偷锁'。

答案 7 :(得分:2)

您只需一步即可修复它。

步骤1:打开终端并转到您的项目,然后点击命令" svn cleanup"那么" svn update"

答案 8 :(得分:1)

我最终使用export命令而不是update命令。这是post-commit hook

“C:\ Program Files \ VisualSVN Server \ bin \ svn.exe”export“D:\ xampp \ htdocs \ test-lalala”--quiet --non-interactive --force --username myusername --password输入mypassword

答案 9 :(得分:1)

错误“工作副本已锁定”, 只需按照以下步骤操作:

  1. 您在哪个目录中收到更新错误
  2. 转到其父目录
  3. 在父目录中转到“.svn”隐藏目录
  4. 删除名为“lock”的文件
  5. 清理并完成
  6. 您可以正确更新svn而不会出现错误

答案 10 :(得分:1)

Tortoise svn - >清理

全部在SVN

答案 11 :(得分:1)

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

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

答案 12 :(得分:0)

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

答案 13 :(得分:0)

对于PHPStorm或Intellij:

VCS -> Cleanup Project

答案 14 :(得分:0)

您的BitLocker磁盘加密是否正在运行?就我而言,它锁定了磁盘的整个驱动器以进行加密,并且SVN失败并显示了此错误。

答案 15 :(得分:-1)

svn cleanup test-lalala/
svn update

重复两次