How to view the version tree for a file in SVN which shows the merges from branches back to trunk


I'm new to SVN but have used Clearcase for years.

My issue is I have some changes on a branch which I have merged back to trunk using TortoiseSVN "Reintegrate a branch" feature. Now when I look at the version tree I don't see any edge being rendered from the tip of the branch to the tip of the trunk, which I would expect to see. In Clearcase you would see merge arrows indicating the direction of the merge between branches of a file/folder.

Is this simply a rendering issue on TortoiseSVN or is a "merge" simply a client side operation and its just treated as a regular change on the trunk, with little more than just the commit comments to describe to operation?

Is this possible?



Best Solution

For svn, a branch is just another directory, with the little difference that it knows some history: It knows where it was copied from. When you merge a branch into the trunk, Subversion will take all changes that where made to the branch since it was created (i.e. copied) and apply all those changes to the trunk. It will remember which changes have already been merged (so it's not totally true that Subversion doesn't store anything about the merges), hence knows not to apply them again.

So, merging in Subversion doesn't mean much more than applying some changes here that were made somewhere else. The idea of the branch graph therefore doesn't work well with Subversion (and the way of handling branches is probably the most often uttered criticism of Subversion).

If you have the choice, you might want to look at Mercurial, which has a usability quite similar to that of Subversion, but is much better at handling branches and merges.

If you're stuck with subversion, I hope I could at least give a little explanation. Also, the SVN Book is a very good introduction to Subversion and is definitely a must-read for new Subversion users.