For svn, a branch is just another directory, with the slight difference that it knows some story: it knows where it was copied from. When you merge a branch into a trunk, Subversion will accept all the changes that have been made to the branch since it was created (i.e., Copied), and apply all these changes to the trunk. He will remember what changes have already been merged (so itโs not entirely true that Subversion does not store anything about merges), therefore, he should not apply them again.
So, merging in Subversion doesn't mean much more than applying some of the changes here that were made elsewhere. Therefore, the idea of โโa branch graph does not work with Subversion (and the way branch processing is most likely criticized by Subversion).
If you have a choice, you can look at Mercurial , which has usability very similar to that of Subversion, but it is much better when handling branches and merges.
If you are stuck with subversive activities, I hope I can at least give a little explanation. In addition, the SVN Book is a very good introduction to Subversion and is definitely a must-read for new Subversion users.
source share