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

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

当我清理的时候,我得到

处理失败 以下路径:XXXXXXXX

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


当前回答

就地撤销文件版本,并将新的签入到相同的位置,为我解决了这个问题。

在TortoiseSVN中,要进行就地版本化,请从文件列表中右拖工作副本的根文件夹到目录树中,并从弹出菜单中选择“SVN Export versioned items here”。TortoiseSVN注意到目标和源是相同的,并建议解除工作副本的版本控制。

在解除版本控制之后,对同一文件夹执行一次新的签出(现在包含所有文件的未版本控制副本)。TortoiseSVN会警告你,你正在签入一个现有的文件夹,但你可以继续。

在此之后,清理、更新和其他操作工作顺利进行。由于上述两个步骤都保留了本地修改,因此不应该有任何信息丢失(但在此之前备份工作副本可能是一个好主意)。

警告:如果工作副本包含混合版本或未提交的属性更改,则该信息将丢失。对我来说,这种情况并不常见,如果要在损坏的工作副本或丢失未提交的属性更改之间做出选择,我倾向于选择后者。

其他回答

最简单的方法是显示隐藏文件夹,然后打开. svn文件夹。您应该看到一个名为“lock”的零KB文件,删除它将解决这个问题

做清理工作

删除“。svn”文件夹。 在根文件夹中执行svncheckout。 尝试执行清理操作。

这解决了我的问题。

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

在我的案例中,我通过手动删除SQLite中的一条记录来解决这个问题”。svn\wc"文件锁记录在WC_LOCK表中。

我用SQLite编辑器打开“WC”文件并执行

delete from WC_LOCK

按照eakkas的注释,您可能还需要从WORK_QUEUE表中删除所有条目。

我只是创建了一个新文件夹,签出项目,将更新的文件复制到新文件夹中。

用新的结账方式修好了。