工作副本锁定
Posted
技术标签:
【中文标题】工作副本锁定【英文标题】:Working Copy Locked 【发布时间】:2012-02-03 20:51:25 【问题描述】:我正在开发一个使用 subversion 作为版本控制的网站,但收到“工作目录锁定”错误消息
故事是这样的:
我有
PC-A:
Windows XP 专业版 VisualSVN 2.5.2 乌龟 SVN 1.7.3PC-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 > CleanUp,然后检查“清理工作副本状态”和“包括外部”(默认选中)。尝试添加文件并提交,但仍然收到相同的错误消息。
我尝试在 .svn 文件夹中查找锁定文件,但没有锁定文件。我也尝试删除 PC-A D:\xampp\htdocs\test-lalala 上的工作副本并再次结帐,但是当我提交时,仍然收到相同的错误消息。
如何解决这个错误信息?所以当我提交时,文件夹会自动更新?
【问题讨论】:
Jonathon J Howey 的回答对我有用。我还得做一件事,那就是在清理之前关闭我的视觉工作室。 【参考方案1】:每次我遇到工作副本锁定错误时,我都会运行“清理”。之后一切恢复正常。
您可以在命令行上执行svn cleanup
,这也会删除锁定文件。
注意:在上一级目录上执行此操作,大多数情况下应该可以解决。
【讨论】:
当我从锁定位置向上清理一个目录时为我工作 它在 Ubuntu 上运行,我在客户端上有 Ubuntu,在服务器上有 Linux,它可以工作。实际上,这个问题在 Linux 上比在 Windows 上更频繁地发生在我身上。 如果使用 GUI,请不要忘记选中“Break locks”复选框。【参考方案2】:对于仍然遇到此问题的任何人(错误:工作副本“DIR”已锁定。),我有您的解决方案:
我发现当一个 TortoiseSVN 窗口崩溃时,它会留下一个 TSVNCache.exe,它仍然有一些处理您的工作副本的句柄,这会导致您看到的锁定问题(并且还会阻止清理工作) .
所以要解决这个问题:
要么
1a) 使用 Process Explorer 或类似工具删除 TSVNCache.exe 拥有的句柄
1b) ..或者更简单,只需使用任务管理器杀死 TSVNCache.exe
然后
2) 右键 -> TortoiseSVN -> 清理。只需要检查“清理工作副本状态”。
从那里,快乐的更新/提交。您可以通过执行 SVN 更新来重现锁定行为,然后在更新完成之前快速杀死它的 TortoiseProc.exe 进程。
【讨论】:
刚刚运行清理对我有用,但这是在注销并再次打开之后,所以可能以这种方式杀死了进程。 我让 Visual Studio 与 AnkhSVN 一起运行,并且必须在清理工作之前关闭它。 经过大量搜索,我终于找到了这个。这应该更明显,因为它是唯一对我有用的东西!【参考方案3】:在***目录级别运行“清理”。
【讨论】:
“工作目录锁定”错误可能是由于在文件夹/文件添加时 svn 客户端锁定并且未正确提交,可能会通过清理修复。 当我没有在 ***目录 级别运行清理时,我得到了同样的错误 +1 表示“在***目录级别”。没有其他人提到它,它似乎很重要。【参考方案4】:我通过删除WC_LOCK表中SQLite“.svn\wc.db”文件锁记录中的WC_Lock记录解决了。
只需使用 SQLite 编辑器打开“wc.db”文件并执行
从 WC_LOCK 中删除
解决方案在另一个我现在找不到的链接中给出。但确实是一个很好的解决方案;不用担心删除所有目录
【讨论】:
DB Browser for SQL Lite 和 SQLLite 编辑器一样吗? 是的,应该是。对我来说,我只是通常使用 Firefox 扩展来编辑数据库【参考方案5】:我通过删除隐藏的 .svn
文件夹来修复它,并将其替换为新的结帐 .svn
并且它有效。可能这个隐藏的文件夹搞砸了!
【讨论】:
【参考方案6】:我相信它对你很有效
转到*** SVN 文件夹。
右键单击文件夹(包含您的 svn 文件)-> TortoiseSVN -> 清理
这肯定会解决您的问题。
【讨论】:
【参考方案7】:如果您是 Windows 用户并使用“Tortoise SVN”用户。
选择文件。右键点击。 选项 'Tortoise SVN' --> 获取锁。 使用选项“窃取锁”。
【讨论】:
【参考方案8】:您只需一步即可修复它。
第 1 步:打开终端并转到您的项目,然后启动命令“svn cleanup”然后“svn update”
【讨论】:
这是两步;P ...甚至是三步【参考方案9】:我最终使用了导出命令而不是更新命令。这是提交后的钩子
"C:\Program Files\VisualSVN Server\bin\svn.exe" export "D:\xampp\htdocs\test-lalala" --quiet --non-interactive --force --username myusername --password我的密码
【讨论】:
【参考方案10】:错误“工作副本被锁定”, 只需按照以下步骤操作:
-
更新时您在哪个目录中遇到错误
转到其父目录
在父目录中转到“.svn”隐藏目录
删除名为“lock”的文件
清理并完成
您可以正确更新svn而不会出错
【讨论】:
【参考方案11】:乌龟 svn ->清理
这就是 SVN 中的全部内容
【讨论】:
经常失败或无限期清理 如果用户遇到问题并且根本不使用 TortoiseSVN 怎么办?【参考方案12】:当您遇到工作副本错误时,只需运行 svn cleanup
即可清除所有不需要的文件和文件夹。如果仍然出现错误,那就做一件事。
将您的文件复制到其他驱动器并删除工作副本文件夹或文件,然后进行更新,它将获取新文件并在此替换为您更新的副本并提交相同的内容。
【讨论】:
【参考方案13】:我遇到了与您描述的相同的问题。这似乎是 Tortoise 1.7.3 上的一个错误。我已经恢复到 1.7.2,执行了清理和更新。 现在我的 SVN/Tortoise 又可以正常工作了
【讨论】:
【参考方案14】:对于 PHPStorm 或 Intellij:
VCS -> Cleanup Project
【讨论】:
【参考方案15】:您的 BitLocker 磁盘加密是否正在运行?在我的情况下,它锁定了磁盘的整个驱动器进行加密,并且 SVN 因此错误而失败。
【讨论】:
【参考方案16】:svn cleanup test-lalala/
svn update
重复两次
【讨论】:
您能进一步解释一下吗?test-lalala
代表什么?
@NicoHaase 与问题中使用的名称相同
“重复两次”是什么意思?以上是关于工作副本锁定的主要内容,如果未能解决你的问题,请参考以下文章
Mercurial:我如何找出我的工作副本和另一个副本之间的区别