我正在开发一个使用 subversion 作为版本控制的网络,但得到“工作目录锁定”错误消息
这是故事:
我有
个人电脑-A:
视窗 XP 专业版
视觉SVN 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 文件并提交。当我提交时,我收到此错误消息
https://i.stack.imgur.com/PUtyF.png
在 PC-A 上,我尝试右键单击 D:\xampp\htdocs\test-lalala TortoiseSVN > CleanUp,然后检查“清理工作副本状态”和“包括外部”(默认选中)。尝试添加文件并提交,但仍然收到相同的错误消息。
我尝试在 .svn 文件夹上查找锁定文件,但没有锁定文件。我还尝试删除 PC-A D:\xampp\htdocs\test-lalala 上的工作副本并再次结帐,但是当我提交时,仍然收到相同的错误消息。
如何解决此错误消息?所以当我提交时,文件夹会自动更新吗?
每次我遇到工作副本锁定错误时,我都会运行“清理”。之后一切恢复正常。
在命令行上,您可以执行 svn cleanup
,它也会删除锁定文件。
注意:在上一级目录上执行此操作,大多数情况下应该可以解决。
对于仍然遇到此问题的任何人(错误:工作副本“{DIR}”已锁定。),我有您的解决方案:
我发现当一个 TortoiseSVN 窗口崩溃时,它会留下一个 TSVNCache.exe,它仍然有一些处理您的工作副本的句柄,这会导致您看到的锁定问题(并且还会阻止清理工作)。
所以要解决这个问题:
任何一个
1a) 使用 Process Explorer 或类似工具删除 TSVNCache.exe 拥有的句柄
1b) ..或者更简单,只需使用任务管理器杀死 TSVNCache.exe
然后
2)右键单击-> TortoiseSVN-> 清理。只需要检查“清理工作副本状态”。
从那里开始,快乐的更新/提交。您可以通过执行 SVN 更新来重现锁定行为,然后在更新完成之前快速杀死它的 TortoiseProc.exe 进程。
在顶级目录级别运行“清理”。
我通过删除 WC_LOCK 表中的 SQLite ".svn\wc.db" 文件锁定记录中的 WC_Lock 记录来解决它。
只需使用 SQLite 编辑器打开“wc.db”文件并执行
从 WC_LOCK 中删除
解决方案在另一个我现在找不到的链接中给出。但确实是一个很好的解决方案;不用担心删除所有目录
我通过删除隐藏的 .svn
文件夹来修复它,并用新的结帐 .svn
替换它,它工作正常。可能这个隐藏的文件夹搞砸了!
我相信它对你很好
转到顶级 SVN 文件夹。
右键单击文件夹(包含您的 svn 文件)-> TortoiseSVN -> CleanUp
这肯定会解决你的问题。
如果您是 Windows 用户并使用“Tortoise SVN”用户。
选择文件。右键点击。选项 'Tortoise SVN' --> 获取锁。使用选项“偷锁”。
您只需一步即可修复它。
第 1 步:打开终端并转到您的项目,然后启动命令“svn cleanup”然后“svn update”
我最终使用了导出命令而不是更新命令。这是提交后挂钩
"C:\Program Files\VisualSVN Server\bin\svn.exe" 导出 "D:\xampp\htdocs\test-lalala" --quiet --non-interactive --force --username myusername --password mypassword
错误“工作副本锁定”,只需按照以下步骤操作:
在哪个目录中更新时出错转到其父目录在父目录中转到“.svn”隐藏目录删除名称为“lock”的文件清理并完成
您可以正确更新svn而不会出错
乌龟 svn -> 清理
这就是 SVN 中的全部内容
当您收到工作副本错误时,只需运行 svn cleanup
即可清除所有不需要的文件和文件夹。如果仍然出现错误,那就做一件事。
将您的文件复制到其他驱动器并删除工作副本文件夹或文件,然后进行更新,它将获取新文件,然后用您更新的副本替换并提交相同的文件。
我遇到了与您描述的相同的问题。这似乎是 Tortoise 1.7.3 上的一个错误。我已经恢复到 1.7.2,执行了清理和更新。现在我的 SVN/Tortoise 又可以正常工作了
对于 PHPStorm 或 Intellij:
VCS -> Cleanup Project
您的 BitLocker 磁盘加密是否正在运行?就我而言,它锁定了磁盘的整个驱动器进行加密,而 SVN 因此错误而失败。
svn cleanup test-lalala/
svn update
重复两次
test-lalala
代表什么?