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

现在当我发出'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目录复制到我的目录中,然后更新我的工作副本,从而解决了这个问题。这是一个很好的、快速的、干净的解决方案。

其他回答

在终端中运行svn cleanup命令(如果它在Eclipse中失败,这是我的情况):

~/path/to/svn-folder/$ svn cleanup

我尝试了这里解释的不同解决方案,但没有一个奏效。

行动小组→更新头部失败:

svn: E155004:“/home/user/path/to/svn-folder”下有未完成的工作项;先运行'svn cleanup'。

Action Team→清理失败,错误相同。

解决方案:在终端上执行svn cleanup命令。

命令执行成功。

然后Team→Update in Eclipse再次工作。

注意:我的SVN版本是1.9.3。

如果svn cleanup不起作用,还检查Chris的回答。

我也有同样的问题。对我来说,原因是与EasySVN和(TortoiseSVN或SVN)的冲突。我有自动更新和提交与EasySVN(这是不工作)。

当我关闭此功能时,我无法清理、提交或更新。上面的解决方案都没用,但是重新启动可以:)

只读锁定有时发生在Windows网络驱动器上。尝试断开连接并重新连接。然后清理和更新。

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

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

但当我试图清理的时候:

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

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

我刚刚在64位的Windows 7上遇到了同样的问题。我以管理员身份运行控制台,并从问题目录中删除了.svn目录(得到了关于日志或其他内容的错误,但忽略了它)。然后,在资源管理器中,我删除了不再显示为版本控制下的问题目录。然后,我运行了一个更新,事情按照预期进行。