I'm fairly new to both Subversion and Subclipse and am seeing some issues that lead me to believe there is a difference between updating to head, and synchronizing. Specifically I find that when I try to revert (using the subclipse history), I often get a message saying "Cannot reverse merge a range from a path's own future history, try updating first". My synchronize should ensure that I have the 'head' version of all the files in my branch on the REPO, but doing an "Update to head" does fix the issue... so what gives? I've tried to check the SVN console to see what's changing, but it's not very verbose.
Ideas?
I have a second question, but I'm assuming the answer to the first will shed light on it. If you are curious and have time to read, I'll type it up as well. Here's the scenario... I've branched all my files from a "Production" tag, and have begun to work on my project. After a few commits, I check a changed file's history and notice that the 'bolded' version (according to documentation, this should be head) is below all my commits. It's as if what I have isn't head. But head is just the latest version of the project right? So what am I missing.
Thanks for your response and taking the time to read this!
Update to HEAD will do svn update . In other words it will update your working copy to the last revision from the repository. Synchronize with Repository is something similar to svn status -u , but even more.
When you update, the contents of your working copy are updated with all of the changes that have been committed to the repository since you last updated. Subversion is pretty smart about updating and never just overwrites files that have local changes with copies from the repository.
Synchronizing with the repository enables you to compare changes that have been made side by side in an easier format than the update merge format.
There is a difference. When you use the Synchronize view, only the items in the view are updated. With Subversion, folders also have a revision that is bumped everytime a child is modified. However, since these do not appear in the view, they never get updated. When you do Team > Update on the project, all folders and files are updated to a single uniform revision. I have a couple of blog posts that explain this:
This one explains the core SVN concept of a mixed revision working copy, and is essential to understanding this:
http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html
The second shows a feature in Subclipse to deal with this:
http://markphip.blogspot.com/2006/12/subclipse-synchronize-feature-show-out.html
Since the second blog was written, most Subclipse users found they did not like this feature even though it helps with this problem. So it is now off by default in current versions. I do not think anyone uses it anymore.
The main thing is just to occasionally use Team > Update on your project to bring it all up to a single uniform revision.
Mark
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With