SVN中的工作副本XXX已锁定,清理失败

时间:2020-03-06 14:40:15  来源:igfitidea点击:

我执行svn update时收到此错误:

Working copy XXXXXXXX locked Please
  execute "Cleanup" command

当我进行清理时,我得到

Cleanup failed to process the
  following paths: XXXXXXXX

我如何摆脱这个循环?

解决方案

我们正在使用TortoiseSVN并刚刚升级吗?从1.4移至1.5且未重新启动之前,我曾遇到过此问题。 (尝试重新启动)。

我们需要重新启动的原因是因为缓存文件变得很时髦。

否则,只需继续,将工作副本导出到新文件夹(不要复制.svn隐藏文件夹),重新检出项目,然后将所有代码移回,然后继续进行提交。

一种方法是:

  • 将已编辑的项目复制到另一个位置。
  • 删除包含问题路径的文件夹。
  • 通过Subversion更新包含的文件夹。
  • 复制文件或者根据需要合并更改。
  • 犯罪

另一种选择是删除顶层文件夹,然后再次签出。希望它不会解决这个问题。

一个在工作的同事不断看到此消息,对他来说,这是因为他删除了SVN版本控制下的目录而不将其从SVN中删除,然后在同一个名称下创建了一个不在版本控制下的新目录。

如果这是问题...:

有多种修复方法,具体取决于替换目录的方式/原因。

无论哪种方式,我们都可能需要:

A)将现有目录重命名为临时名称

B)执行SVN还原以恢复从文件系统中删除的目录,而不是从SVN中删除的目录

从那里,你或者

A)将相关文件复制到已删除的目录中

B)如果目录中的内容有重大更改,请对原始目录进行SVN删除,然后提交,然后将新目录重命名为所需的名称,然后添加SVN以使该目录受版本控制。

从存储库中获取实际文件之前,SVN通常会更新文件夹中文件的内部结构(.svn / prop-base)。提取文件后,该文件将被清除。通常,由于在更新过程中"更新"失败或者过早取消而引发错误。

  • 检查.svn / prop-base目录下是否列出了任何文件
  • 删除不在该文件夹下的所有文件
  • 清理
  • 更新

现在,更新应该可以了。

发生了同样的问题,因为我在版本控制的文件夹下导出了一个文件夹。不得不从TortoiseSVN中删除该文件夹,然后从文件系统中删除该文件夹(TortoiseSVN不喜欢未版本控制的子文件夹...为什么不呢???)

只需删除.svn文件夹,然后在父目录上运行清理即可。完美的作品!!

查看.svn文件夹,其中会有一个名为lock的文件。删除该文件,我们将可以更新。每个子目录的.svn目录中可能会有更多的锁定文件。他们还需要删除。这可以非常简单地从命令行中例如使用批处理来完成

find . -name 'lock' -exec rm -v {} \;

请注意,我们正在手动编辑.svn文件夹中的文件。他们被放在那里是有原因的。该原因可能是一个错误,但如果不是这样,则可能会损坏本地副本。

消息来源:http://www.svnforum.org/2017/viewtopic.php?p=6068

当我遇到此问题时,我发现通常直接在问题路径上运行cleanup命令。然后,我将从工作根再次运行清除,它将抱怨其他一些目录。我只是重复一遍,直到它不再抱怨为止。

对我来说,诀窍是在工作副本的顶部运行" svn cleanup",而不是在问题发生之前一直在工作的文件夹中运行。

最简单的方法是显示隐藏的文件夹,然后打开.SVN文件夹。我们应该看到一个名为"锁"的零KB文件,删除此文件将解决此问题。

我在TortoiseSVN下拥有此文件,该错误与我在新项目下创建的新目录有关。我刚刚创建了这个项目,所以以前没有这个目录。我在存储库浏览器中查看,新文件夹确实已经存在于存储库中,但是TortoiseSVN并未将其显示为已提交。

为了解决该问题,由于无论如何我都只是创建了该文件夹,因此我在存储库中将其删除,然后进行了提交。工作正常。

由于我是在Visual Studio之外进行此操作的,因此必须重新启动Visual Studio才能再次解决所有问题。

如果我们使用的是Windows计算机,请通过浏览器查看存储库,我们很可能会看到两个文件名相同但大小写不同的文件。 Subversion区分大小写,而Windows则不区分大小写,因此当Windows认为它正在拉下相同的文件而Subversion却没有时,我们可以获得锁。删除存储库中重复的文件名,然后重试。

我遇到了这个问题,因为外部文件夹不想链接到现有文件夹。如果添加svn:externals属性行,其中目标是现有(版本或者非版本)文件夹,则将收到SVN Woring Copy锁定错误。在这里清理也会告诉我们一切都很好,但是仍然无法进行更新。

解决方案:从存储库中删除麻烦的文件夹,并在设置svn:externals属性的根文件夹中进行更新。这将创建文件夹,并且一切都将恢复正常。

我遇到了这个问题,因为文件的svn:externals要求对目标文件夹进行版本控制。当我发现这不适用于不同的存储库后,我从外部文件交换到了外部文件夹,并陷入了混乱。

开始搜索....锁定...选择所有列出的文件并删除..已修复

应该执行以下操作:

svn状态| grep" .L" | sed's /.(。)$ / \ 1 /'| awk'{打印长度($ 1),$ 1}'|排序-nr | awk'{print" pushd" $ 2"; svn cleanup; popd"}'| | | | | | | | SH

不要删除解决方案!

在.svn文件夹中,我们有一个名为lock的文件,它的长度为0个字节

我们可以从解决方案中的所有.svn文件夹中删除所有这些文件,然后它将起作用

以我为例

如果我们使用的是Linux,请尝试以下操作:

find "/the/path/to/your/directory" -name .svn -type d | xargs chmod 0777 -R

然后在该目录上运行" cleanup"命令,然后尝试更新。

@Chuck的解决方案对我来说并不实际。在我第一次遇到问题时,它虽然有效,但也做了很多额外的工作。在第二种情况下,我在网络外部使用笔记本时更改了文件负载。更改文件后,我看不到一个文件夹一个文件夹。曾对乌龟抱有希望并努力工作。怎么看:

环境是:

  • Visual Studio 2008年
  • 安赫什文

程序:

  • 首先我不敢说,它说我需要清理
  • 其次,我无法清理,在svn中有一个文件夹-" bin"
  • 我下载了Tortoise最新版本,但由于文件夹被塞住而无法使用。
  • 重命名该文件夹,现在我可以使用最新版本更新本地存储库。
  • 几个文件进来了。
  • 做了承诺并且工作了。