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

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

当我清理的时候,我得到

处理失败 以下路径:XXXXXXXX

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


当前回答

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

如果这是你的问题……

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

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

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

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

从那里开始,你可以选择

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

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

其他回答

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

对我来说,问题是完全满磁盘驱动器(linux inodes在我的情况下),当我删除一些文件夹,它又开始工作了。

错误如下(任何svn动作):

$ svn cleanup
svn: E155004: Run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
svn: E155004: Working copy locked; try running 'svn cleanup' on the root of the working copy ('/my/directory') instead.
svn: E155004: Working copy '/my/directory' locked
svn: E200030: sqlite[S14]: unable to open database file
svn: E200030: Additional errors:
svn: E200030: sqlite[S14]: unable to open database file

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

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

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

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

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

在我的例子中,一台运行TortoiseSVN的Windows 7机器无法完全重命名文件夹。任何清理、更新或重命名操作的组合都不能解决这个问题。文件夹最初是用不同的case创建的,Tortoise或Subversion不会将其更改为存储库中的内容。

我的解决方案是:

通过Windows资源管理器复制文件夹(不带Subversion控件) 文件)在项目之外。 通过TortoiseSVN删除并提交文件夹。 通过Windows资源管理器将文件夹复制回正确的(当前)名称。 通过TortoiseSVN将文件夹添加回存储库。

我在每一步之后都进行了清理。糟糕的解决方法,但对我很有效。

应该做到以下几点:

SVN status | grep”。L" | sed 's/。*(. *) / \ 1美元/ | awk的{打印长度(1美元),$ 1}”|排序nr | awk的{打印2美元“pushd;SVN清理;Popd "}' | sh