我在一个工作文件夹中有很多更改,在尝试进行更新时出错了。

现在当我发出'svn cleanup'时,我得到:

>svn cleanup .
svn: In directory '.'
svn: Error processing command 'modify-wcprop' in '.'
svn: 'MemPoolTests.cpp' is not under version control

MemPoolTests.cpp是另一个开发人员添加的新文件,在更新中被删除了。以前我的工作文件夹里不存在。

我能做些什么来尝试并继续前进,而不必签出存储库的新副本吗?

澄清:感谢您提出的关于将目录移出并删除一个新副本的建议。我知道这是一个选项,但这是我想避免的,因为有许多更改嵌套在几个目录深处(这应该是一个分支…)

我希望有一种更积极的方式来做清理,也许以某种方式迫使文件SVN有麻烦回到一个已知的状态(我尝试删除它的工作副本…这并没有帮助)。


当前回答

我还遇到了清理失败的问题。最初我试图提交一些代码,但它说:

svn: E155004: '/my/path/to/files'中有未完成的工作项;先运行'svn cleanup'。

但当我试图清理的时候:

svn: E155007: '/my/path/to/files'不是工作拷贝目录

以我为例,结果是我在复习方面遇到了冲突。我的svn文件夹包含.mine、.r1和.r2文件。一旦我解决了冲突,清理工作就成功地运行了。

其他回答

当我用TortoiseSVN (Windows)遇到这个问题时,我去Cygwin并从那里运行“svn cleanup”;它为我正确地清理,之后一切工作从TortoiseSVN。

(在尝试移动文件夹和执行新的签出之前。)

删除有问题文件所在的文件夹——是的,甚至是.svn文件夹 在最上面的/ parent文件夹上进行SVN清理。

它可能并不适用于所有情况,但当我最近遇到这个问题时,我的“解决方案”是升级系统上的Subversion包。我一直跑1.4。当我升级到最新版本(我的版本是1.6.6)时,签出工作正常。

(我确实尝试重新下载,但签出到一个干净的目录总是挂在同一个位置。)

看一看

http://www.anujvarma.com/svn-cleanup-failedprevious-operation-has-not-finished-run-cleanup-if-it-was-interrupted/

以上链接修复的总结(感谢Anuj Varma)

Install sqlite command-line shell (sqlite-tools-win32) from http://www.sqlite.org/download.html sqlite3 .svn/wc.db "select * from work_queue" The SELECT should show you your offending folder/file as part of the work queue. What you need to do is delete this item from the work queue. sqlite3 .svn/wc.db "delete from work_queue" That’s it. Now, you can run cleanup again – and it should work. Or you can proceed directly to the task you were doing before being prompted to run cleanup (adding a new file etc.)

最新版本(我使用的是1.9.5)通过在清理菜单上添加“打破锁”选项来解决这个问题。请确保在清理时选中了此复选框。