eclipse - svn : Item <folder> is out of date

标签 eclipse ubuntu subclipse

[赏金系统违背我的意愿自动选择答案]

我正在使用 subclipse,并且总是在 Eclipse 中删除文件夹并尝试提交它时,会出现以下错误:

svn: Item <folder> is out of date
svn: DELETE of <folder>: 409 Conflict (http://myintranet)

通过命令行删除和提交工作正常,但通过 subclipse 执行有什么问题?还有人遇到这个问题吗?

(我在 Ubuntu 9.10 和 10.04 中遇到过这个问题;最后一个 Eclipse 版本;和 subclipse 1.4 - 因为下一版本的 subclipse 有更多的错误)

--更新:当我删除文件夹而不是文件时

最佳答案

这不是由 Subclipse FAQ 解决的吗? ?

Whenever you see "out of date" in an error message it means that the revision of the item in the repository is newer than the copy in your local working copy.
The solution is always going to be to run an update, so that your working copy is up to date with the repository, and then do the commit again (assuming that the update did not generate any conflicts).

  • For files, this is usually pretty easy to understand how and why this happens.
  • However, Subversion also versions folders, and it is usually with folders that this problem most often happens.
    Subversion does not allow you to delete/rename a folder OR change its versioned properties, UNLESS the local copy of the folder is at the HEAD revision of the folder in the repository.

Your next question might be:
"OK, I can maybe understand that, but why is my folder out of date? I am the only person working in this repository."

That is a valid question, the answer lies in the way that Subversion works.
When you commit a change to a file, the revision of the file in your working copy is updated to that new revision when the commit completes, however the version of the parent folder(s) of that file is not updated.
This is because there may have been adds/deletes to other files in that folder and until you have run an update, the folder is not really at that new revision.
This is called "mixed revision working copies".

In summary, the answer is always to do an update so that the folder or file is updated to its HEAD revision.


关于“混合修订工作副本”:

One special kind of flexibility is the ability to have a working copy containing files and directories with a mix of different working revision numbers.

One of the fundamental rules of Subversion is that a “push” action does not cause a “pull,” nor vice versa.
Just because you're ready to submit new changes to the repository doesn't mean you're ready to receive changes from other people.

The fact is, every time you run svn commit your working copy ends up with some mixture of revisions.
The things you just committed are marked as having larger working revisions than everything else. After several commits (with no updates in between), your working copy will contain a whole mixture of revisions

(我相信,这就是为什么您不能在删除文件夹的后续提交中重现“过时”消息的原因:您的更新确实解决了“混合修订”状态。)

Mixed revisions have limitations

You cannot commit the deletion of a file or directory that isn't fully up to date.
If a newer version of the item exists in the repository, your attempt to delete will be rejected to prevent you from accidentally destroying changes you've not yet seen.

关于eclipse - svn : Item <folder> is out of date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2805546/

相关文章:

java - 在 Java 中加载 .DLL

eclipse - JavaHL 不工作

eclipse - Subclipse 出现 "RA layer request failed"错误,Web 浏览器没有错误

eclipse - 如何完全删除Subclipse插件?

tomcat - Ubuntu Tomcat7 java.lang.ClassNotFoundException : org. apache.tomcat.dbcp.dbcp.BasicDataSourceFactory

java - 如何缩放从 PNG 加载的透明 org.eclipse.swt.graphics.Image; java

java - 将新数据追加到 ArrayList 的简单方法

eclipse - 与 CVS 的连接错误

ubuntu - 如何使用 qdel all 只删除空闲作业

mysql - 设置为允许连接后,无法从远程服务器连接到数据库