SVN refuses to commit. No updates required - eclipse

I am using Flash Builder for PHP 4.5 to work on a php project. It is essentially Zend Studio which is built on top of eclipse.
I've moved some folders and files, renamed some files from within Flash Builder. Some files were also removed. I then attempted to commit to SVN.
SVN comes back with an error saying commit failed as one of the files is not up to date. Conincidentally, this is also one of the files that was removed.
I then proceeded to do an update first and got the message: No changes to merge.
Trying to commit again just results in an error saying that the files are not up to date.
Any ideas as to how I can fix this?

Assuming that it's the deleted file that's making your commits fail, you can try reverting the deleted file, then updating, then deleting again, but if that fails, you might want to consider making a copy of the changes you made in your WC, revert the originals, update the originals, then copy all the changes back.
OR, if you're sure that it's only that deleted file that's making the commit fail, then commit everything else first, then go back and revert the deleted file, update, then delete and commit again. Like I said, SVN is fickle about dirty working copies...

Related

How to massively restore all file edits from eclipse history?

I'm in a lot of trouble.
During a composer update, somehow, the git process crashes and I have lost all my edits since last commit. It looks like there was an hard reset of my repository.
In eclipse I can find all the history files but I have to iterate on every file to check if it was changed and get the last version.
Unfortunately the massive "restore from local history" on the project doesn't work for edited file but only for deleted.
Is there any way to browse eclipse history and get all the last versions?
I know there are inside .metadata.plugins\org.eclipse.core.resources.history but they are hashed and probably I have many version of the same file.

Update JBoss Developer SVN working copy using Subclipse plugin

I was following the remarks from this SO Post to "Update" my working copy with the lastest revision checked into our SVN repo.
This made perfect sense as it is the same way I would do it using TortoisSVN. Click Update and you get most recent updated files. However, there was a file I deleted from JBoss Developer (eclipse) and was expecting that using the Update option in JBDS would restore the most recent version of that file from the SVN
However, instead it just told me a conflict existed (file deleted from working copy, but exists on repository) and did not download it like it would with TortoisSVN.
So my question is - how do I get it to update where it actually redownloads the file I deleted?
With TortoiseSVN, if you simply delete a file then it becomes "Missing". If you delete a file in Eclipse, it tells Subclipse you deleted the file so it runs svn delete. The equivalent of taking the Delete action in TortoiseSVN. When you do an update, missing files are restored in your working copy, but deleted files are not -- because you said to delete it.
You are getting something else though. In your case, there was a newer version of the file in the repository. Because it is marked deleted locally, that is a tree conflict. If you did the Delete action in TortoiseSVN you would see the same.
The tree conflict is so that you are aware that the file you deleted has been modified by someone. So maybe you want to reconsider the delete etc. The Team > Show Tree Conflicts option will show all tree conflicts and provide option to resolve it.

Eclipse - SVN derived files are committed in background

I have several projects in eclipse and sometimes I mark a file as derived so SVN ignores the file and it doesn't get committed. For a while this worked for me but somehow I have some problems now. Some of these files get committed from my account. Svn history tells me that I did commit those files but I'm 100% sure I did not.
I have 3 files committed in the history but the dialog did only show 2 of them. Is there a problem when I put versioned files on derived ? So they somehow get committed in the background ? Because that's what it looks like to me. I never saw those files in my commit dialogue but Eclipse (4.2.1) Subversive (SVNKit 1.7.5v1) did commit them somehow.
Is there a better way to ignore those files in further commits ? They need to be in version control and I do have some local changes to these files who shouldn't be committed. So svn ignore is not an option.

svn rollback Settings.bundle

I am trying to rollback to a previous version of the file/folder Settings.bundle. A file was added to Settings.bundle/en.lproj. If I just delete it I just keep getting missing file warnings (and I don't want to). So now I am trying to rollback, but it seems to do nothing when I try to run the command:
svn merge -r 15:5 ./Settings.bundle/
Any thoughts?
Should work so far according to Undoing Changes in svn red book. Maybe it's worth trying to run svn delete on those files added since revision 5 (sounds like you don't need them any longer), commit it and perform svn merge again.
Alternatively you can do it manually by running svn export of the Settings.bundle to a temp directory. Afterwards svn delete on all files added since revision 5 and copy files from temp dir back to your working directory. Now you are ready to commit revision 16.

svn: Item <folder> is out of date

[answer auto-selected by bounty system against my will]
I'm using subclipse, and always when delete a folder in Eclipse, and try to commit it, the following errors raise:
svn: Item <folder> is out of date
svn: DELETE of <folder>: 409 Conflict (http://myintranet)
Deleting and commiting via command line works fine, but what's wrong with doing it via subclipse? Is anyone more experiencing this problem?
(I experienced this problem in Ubuntu 9.10 and 10.04; last Eclipse version; and subclipse 1.4 - as the next versions of subclipse have much more bugs)
--updated: Its when I delete folders, not files
Isn't that addressed by the 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.
About "Mixed Revision Working Copies":
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
(and that is why, I believe, you cannot reproduce your "out of date" message on subsequent commits with folder deleted: your update did solve the "mixed revision" state.)
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.
i think if you UPDATE before that it should work.. it did work for me
There's a simple solution without installing some extra software. I also had this "problem" and what you can do is the following:
1) open the SVN Repository view
2) there go to the folder you want to get rid of and delete it
3) go back to the java view
4) update the folder in your project you actually deleted / update your project should also work
That solved the problem in my case, as updating only retrieved the files I deleted
Subclipse has many problems like this. It works 90% of time, and then it just DOES NOT work as it should! I am using subclipse, since it is very well integrated into eclipse, and when I have problem or some bigger moves needed in svn (like merging some branch) I use Tortoisse.
I had the thing with directory like you. Then I just run the TortoiseSVN like #luiscolorado suggests, and it helped. Tortoise is so great tool (it has many great features for diffing, applying patches, getting patches and so on.).
Today I had a problem when I have removed a file, and someone had changed the same file! Then subclipse shows conflict (up to this point everything is ok), so I wanted to revert! But then the revert button is missing (disappears when inconflict mode!) so I have to do merge, and merge does not work, throws some kind of error. I didn't bother to read (maybe I should read and file it as a bug to subclipse maintainers ;-(), I knew the tortoisse will work, and you know what, it worked. There was a REVERT option.
So #Tom Brito, try command line, try Tortoisse, and then you can look at the subclipse changelog and file a bug. I think that subclipse just forgets to show us some directory changes and updates (or it is designed not to do it?), but I may be wrong.
Tom,
You might want to try TortoiseSVN, and manually update the project workspace. Find the location of your project directory in your hard drive, and then try TortoiseSVN (or the command line if it's your preference) to do the update.
A frequent cause of this problem is to delete the directory without "informing" SVN. For instance, if you manually delete the directory using the operating system instead of using SVN, you will have this problem.
If you removed the directory before you installed the subversion plug-in, but the project already existed in the repository, you will experiment this problem. A solution, in this case, would be to recreate the directory, updating/committing, and then delete again the directory.
Good luck.
My solution to this was
Delete all items in folder
Commit to repository
Update folder to HEAD
Delete folder in Eclipse
Commit to repository
A bit cumbersome, maybe, but it always works
The only working way in same cases is via command line. The subclipse is still not perfect..