ChatGPT解决这个技术问题 Extra ChatGPT

提交时乌龟svn中的工作副本锁定错误

每当我对工作副本进行更改时,我都会使用 Tortoise SVN 来更新和提交对服务器中存储库的更改。但是从几天开始,我无法提交更改,并且每当我尝试提交时都会收到以下错误。

Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.

我试图通过右键单击该文件夹并选择 Tortoise SVN > 释放锁定来解锁该文件夹,它说

没有什么可以解锁的。此工作副本中没有文件被锁定

可能是什么问题?


N
Nux

没问题...试试这个:

转到顶级 SVN 文件夹。

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

这肯定会解决你的问题。我做了很多时间...... :)

笔记。确保在“清理”对话框中选择了“解除锁定”选项。


谢谢@MicroEyes ...现在我可以提交了。我只有一个小小的疑问。对文件进行更改后,我应该先提交然后更新文件(在工作副本中)还是先更新然后提交?
始终关注更新然后提交。否则你会从 TortoiseSVN 收到一条更新消息,因为你的版本副本比存储在 SVN 服务器中的版本旧。所以无论如何,你必须更新和提交。
是的..这解决了我与将当前副本更新为 svn 修订版相关的问题。
我刚刚在 SVN 中添加了文件并尝试提交它,但我得到了同样的错误。我尝试了 cleanUp 命令,但我无法解决这个问题。
我正在经历很多。我可以减少 svn 在显示此错误消息之前花费的时间(目前为 5 到 10 秒)吗?所以我可以早点开始清理。
J
Johann

接受的答案对我不起作用。要解决这个问题,我必须右键单击被锁定的文件,选择 repo-browser。这将打开一个包含文件的弹出窗口,因为它们位于 SVN 服务器上。然后我右键单击锁定的文件并选择 break lock

当我关闭存储库浏览器时,我终于可以提交资源管理器了!


您只需要确保在“清理”对话框中选择了“打破锁定”选项。我认为它是默认选择的(这就是为什么原始答案中没有提到这一点)。
b
bluish

右键单击文件夹。 TortoiseSVN->检查修改。单击检查存储库按钮。打破所有返回文件的锁定。


R
Randy Levy

我也遇到了这个问题。对于某些人,我想指出,如果它被锁定,请与您的团队确认。团队中的某个人可能会因为他们正在处理某些事情而被锁定(这允许开发人员在没有其他人进入并尝试处理相同内容的情况下进行工作)。如果是这种情况,释放锁然后更新可能会丢失锁定它的开发人员的数据。

考虑到这一点,我担心“清理”选项可能会更改我的工作副本或从 Subversion 的 Repo 级别删除信息。事实并非如此。答案对我有用。当我在更新过程中单击取消时,我的被锁定了。最后我拉了一些我们的树枝,我不需要这些东西,所以我点击了取消。我的工作副本被锁定。当我使用命令“释放锁定”时,我找不到任何出现“锁定”的文档。这让我感到困惑,在快速阅读(和这个线程)后,我尝试了“清理”命令。清理后它解决了我的问题,并且没有任何东西被锁定。

来源:http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html


G
G. Stevens

SVN中的“锁定”有多种含义,其中一些谈论“打破锁定”或队友持有锁定的答案没有使用原始问题的相关含义。这个问题涉及“工作副本锁定”(即它们完全位于您计算机上工作副本的本地,与您或持有文件锁定/签出的队友无关)。 MicroEyes 接受的答案是指正确的用法,并且是发生这种情况时的最佳选择。

如果清理不起作用,您可能需要检查项目的新工作副本。如果您有任何修改过的、未提交的文件,您需要将它们复制到新的工作副本中,这样您就不会丢失所做的更改。

请参阅 Tortoise SVN 文档中的此页面,了解“锁”的三种用法:http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

摘录(重点补充):

“锁”的三个含义 在本节以及本书的几乎所有地方,“锁”和“锁定”这两个词描述了用户之间相互排斥以避免冲突提交的机制。不幸的是,Subversion 有时需要关注另外两种类型的“锁”,因此本书也需要关注。第二个是工作副本锁,Subversion 内部使用它来防止在同一个工作副本上运行的多个 Subversion 客户端之间发生冲突。通常,每当像 update/commit/... 这样的命令由于错误而中断时,您都会获得这些锁。这些锁可以通过在工作副本上运行 cleanup 命令来移除,如“Cleanup”一节中所述。 ...


c
cosmoto91

我不知道哪个文件被锁定了,所以我为解决这个问题所做的事情是:

到最高级别的文件夹点击清理,也从清理方法打勾-->破锁

这对我有用。


b
bluish

我尝试了各种方法,包括对较低子目录的“清理”。最后,我尝试更新顶级文件夹。没有什么。然后我阅读了“清理顶层”提示。我试过了。清理部分成功,但锁仍然存在。我的解决方案是回到顶层,清理,然后清理我可以深入研究的每个红色(!)文件夹。毕竟是“清理”,更新工作完美。 “破锁”提示看起来也不错,但您的团队中的某个人可能对某事拥有合法的锁定。


b
bluish

我设法将自己锁定在 svn 中的文件之外-不知道如何-但是当我尝试(重新)获得锁定时(乌龟正在显示文件的“获取锁定”选项),它抱怨说已经有了锁。我尝试删除文件并提交目录更改 - 结果相同。我尝试了 CleanUp(包括刷新覆盖),但也失败了。

解决方案是进入 Tortoise 存储库浏览器,找到文件并使用断锁功能。


R
RMK

如果此 (https://stackoverflow.com/a/11764922/3045875) 不起作用:检查是否有其他 SVN 工具干扰并关闭该工具。我们只是在使用 TortoiseSVN 合并过程中苦苦挣扎了几个小时,并且遇到了几十个这样的锁定错误。最终我们发现 Matlabs SVN 集成存在干扰,关闭后一切都解决了。


x
xiaoliuzi

视窗解决方案:

https://sourceforge.net/projects/win32svn/

1.下载它,然后将它添加到系统路径。

2.进入工作目录,在cmd中执行“svn clean”和“svn update”。