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

现在当我发出'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文件。一旦我解决了冲突,清理工作就成功地运行了。

其他回答

您可能遇到两个文件名仅大写不同的问题。如果遇到此问题,创建另一个工作副本目录并不能解决问题。

当前的Windows(即蹩脚的)文件系统根本不明白Filename和Filename之间的区别。你有两个可能的解决方案:

在使用真实文件系统(基于unix)的平台上签出,重命名文件,并提交更改。 当您绑定到Windows时,您可以在Eclipse SVN存储库浏览器中重命名文件,该浏览器能够识别差异并在那里重命名文件。 您也可以从任何命令行SVN客户端远程使用SVN rename -m "broken filename case" http://server/repo/FILEname http://server/repo/filename重命名有问题的文件

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

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

但当我试图清理的时候:

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

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

我遇到一个问题,在更新之后,SVN显示一个文件夹是冲突的。奇怪的是,这只能通过命令行看到- TortoiseSVN认为这一切都很好。

#>svn st
!       my_dir
!       my_dir\sub_dir

SVN清除,SVN恢复,SVN更新和SVN解决都无法解决这个问题。

我最终解决的问题如下:

在.svn目录中查找“sub_dir” 使用RC ->属性取消选中条目文件上的“只读”标志 打开条目文件,删除行“unfinished…”和相应的校验和 保存,并重新启用只读标志 对my_dir目录重复此操作

在那之后,一切都很好。

注意,我没有任何局部变化,所以我不知道如果你有风险。我没有使用其他人建议的删除/更新方法——我是在my_dir/sub_dir/sub_sub_dir目录上尝试该方法(开始时具有相同的症状)才陷入这种状态的——所以我不想冒险让事情再次变得更糟!

不是很切题,但如果有人像我一样看到这篇文章,可能会有帮助。

如果以上都失败了:

签出到一个新文件夹中。 复制修改过的文件。 检查回来。 在删除旧文件夹并使用新文件夹之前,将旧文件夹压缩到某个地方(你永远不知道+偏执狂是好的)。

这里的回答没有帮助我,但是在再次检出项目之前,我关闭并打开Eclipse (subversion是我的SVN客户端),问题消失了。