SVN说我需要执行清理,但清理失败

! 这不是一个重复的问题,因为在其他主题提供的解决scheme不适合我。

当我尝试提交时:

错误:工作副本'D:\ Webs \ Drupal 6'被locking
错误:请执行“清理”命令。

当我尝试进行清理时:

清理无法处理以下path:D:\ Webs \ Drupal 6

有谁知道我可以如何解决这个问题?

它是否工作,如果你这样做

  • 一个新的“清洁”结帐
  • 使用merge / diff工具将已修改的文件合​​并到新的检出文件夹中
  • 承诺

编辑:根据derobert评论更新点2。

如果你还没有修改D:\Webs\Drupal 6 ,那么最简单的方法就是将它复制,然后让svn co再次从服务器上抓取它。

或者,如果您修改了文件,您可以尝试divo的建议,但要小心意外地还原其他人的更改。

或者,您可以查看.svn目录并尝试用手清理锁。

编辑:这是如何nuke / copy程序可以恢复其他人的变化:

  1. 结帐,得到r1;
  2. 修改foo.c,给r1 +更改;
  3. 其他人检查foo.c的变化(当然,你不知道他们已经这样做了,正常的检查方式已经破坏了),repo中的foo.c现在是r2;
  4. 你现在核弹仓除了foo.c(r1 +更改)。
  5. 你做一个结帐,得到foo.c R2。
  6. 你用你的副本替换foo.c(r1 +更改)。 然而,Subversion并不知道这一点,并认为你基于r2的变化,而不是r1。
  7. Checkin,foo.c现在是r3,它刚刚在r2中丢失了其他人的更改。

希望澄清这个程序如何能够无意中回复他人的变化。 这是可以避免的,但只有当你意识到如何发生!

我刚刚通过并删除了所有相关的.svn文件夹,然后运行清理。 完美的作品!

/ *

我遇到了类似的问题。 使用svn清理的建议是没用的,因为清理给了同样的错误(在这种情况下递归的)。 最后,我意识到我已经从远程仓库中导入了一个工作空间到我的本地仓库,所以我用一个导出来替换了结帐,删除了仓库路径,重新创建了仓库并签入。发送端和接收端(!)的路径级别不明确,我可以检查没有问题。 这表明,也许旧的.svn组件是导入的一部分,混淆颠覆,它不知道足以忽视它们。 每次我尝试创建一个存储库,这是一个再学习的经验。

* /

没关系。 我犯了以下错误:1)编辑了导出命令,而不是结帐; 2)省略了从目的地的完整路径,并最终在Windows隐藏的cygwin子目录!