当我做svn更新时,我得到这个错误:

工作副本XXXXXXXX锁定请 执行“清理”命令

当我清理的时候,我得到

处理失败 以下路径:XXXXXXXX

我怎样才能跳出这个循环呢?


当前回答

当我遇到这个问题时,我发现直接在问题路径上运行清理命令通常似乎可以工作。然后,我将再次从工作根目录运行清理,它将报错其他目录。我一直重复,直到它不再抱怨。

其他回答

SVN通常在从存储库获取实际文件之前更新文件夹中文件的内部结构(. SVN /prop-base)。一旦获取文件,这将被清除。在更新过程中,由于“更新”失败或过早取消,通常会抛出错误。

检查.svn/prop-base目录下列出的文件 删除任何不在文件夹下的文件 清理 更新

现在更新应该可以工作了。

查克的解决方案对我来说不实用。在我第一次遇到这个问题时,它起作用了,但也给了我很多额外的工作。在第二种情况下,当我在网络外使用我的笔记本电脑时,我改变了文件的负载。我无法想象自己在更改文件后一个文件夹一个文件夹地查看。对乌龟抱着希望,努力工作。看看:

环境是:

Visual Studio 2008 Ankhsvn

过程:

首先我不能承诺,它说我需要清理 第二,我无法清理,在svn - bin中有一个文件夹 我下载了龟的最新版本,尝试和不工作,由于dammed文件夹。 重命名该文件夹,现在我可以更新本地存储库的最新版本。 来了几份文件。 做了承诺并成功了。

我遇到了这样的问题,“清理”工作,但“更新”将继续失败。有效的解决方案是通过Windows资源管理器删除有问题的文件夹,而不是TortoiseSVN的删除(这将删除标记为提交到存储库的内容,然后我做了一个“签出”,从存储库中“更新”文件夹。

关于O/S删除和SVN删除之间区别的更多信息: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-rename.html

值得注意的是:

当你TortoiseSVN→Delete一个文件时,它会立即从你的工作副本中删除,并在下次提交时在存储库中标记为删除。

And:

如果一个文件是通过资源管理器而不是使用TortoiseSVN上下文菜单删除的,提交对话框会显示这些文件,并允许你在提交之前从版本控制中删除它们。但是,如果您更新了工作副本,Subversion将发现丢失的文件并用存储库中的最新版本替换它。

如果你在Linux上,试试这个:

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

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

我在答案中没有看到这个问题的一个原因是,更新或签出可能已经使用其他用户/权限完成,例如使用$sudo。