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

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

当我清理的时候,我得到

处理失败 以下路径:XXXXXXXX

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


当前回答

对我来说,这其实是乌龟的错。Tortoise只是抱怨“不能清理,运行清理”,但是当我运行命令行(svn cleanup)时,它清楚地告诉我它不能删除一些正在使用的文件,解决方案是显而易见的。一旦我关闭Visual Studio(它保持文件打开),那么清理工作就很好了。

其他程序也可以在repo中保持文件打开,从而导致此问题。在另一个例子中,Excel保持xls打开是罪魁祸首,所以关闭所有可能在repo中使用任何东西的程序,甚至重新启动以强制程序关闭,然后再次尝试清理,这可能是明智的。

其他回答

不要删除您的解决方案!

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

您可以从解决方案中的所有.svn文件夹中删除所有这些文件,这样就可以工作了

这对我来说是有效的

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

不管我怎么努力,清理工作对我都不起作用。相反,我从Visual Studio单独提交每个文件夹。然后我提交了最上面的文件夹,并成功了。

更新目录权限(授予写访问权)也可以解决这个问题。

chmod +w <dir_name>

工作中的一位同事经常看到这条消息,对他来说,这是因为他删除了一个在SVN版本控制下的目录,而没有从SVN中删除它,然后在其不受版本控制的位置创建了一个同名的新目录。

如果这是你的问题……

有不同的方法来修复它,这取决于如何/为什么替换目录。

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

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

B)通过SVN还原恢复从文件系统中删除的目录,但不从SVN中删除

从那里开始,你可以选择

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

B)如果目录中的内容发生了重大变化,请对原始目录进行SVN删除,提交,并将新目录重命名为所需的名称,然后进行SVN添加以使该目录处于版本控制之下。