Subversion 1.5 Merge Tracking and Mergeinfo
Chapter 4 of the forthcoming edition of the O'Reilly book "Version Control with Subversion" provides a good introduction to merge tracking with Subversion 1.5. It describes the common scenario of feature branches copied from a trunk, which are then kept up to date with trunk via periodic synchronization, and at the end of their lifetime are reintegrated back to trunk (with the aptly named --reintegrate option). If this model fits your merging needs, then after reading chapter 4 it is unlikely you will encounter any surprises. But what if you don't follow this model? What if you need to do some or all of the following:
- Merge to shallow working copies?
- Merge to targets with switched subtrees?
- Merge from sources which you don't have full access to because of authorization restrictions, or merge to targets missing subtrees for the same reason?
- Perform multiple merges to the same target without committing in-between?
- Merge to target, then merge to subtrees of that target?
Not to worry, in all of these cases Subversion attempts to "do the
right thing", but you may encounter seemingly unusual behavior that
doesn't fit within the 'synch and reintegrate' paradigm. Key to
understanding all of these cases is a knowledge of the new svn:mergeinfo property (frequently referred to simply as 'mergeinfo').
Mergeinfo is simply the history of merges made into a path. But as with many things that can be described so simply, mergeinfo can become a bit more complex in practice. Initially I had brave hopes of writing a reasonably sized blog post talking about mergeinfo; what it means and how it works. Unfortunately as the page count of my draft post drifted past twenty (after cutting a lot of material out) and a co-worker began to refer to it as the "mergeinfo manifesto", we decided that it was better suited as an article - which you can find here.
So please take a look. Even if you only ever do the simplest of merges, a quick read of the first few sections of the article and the "Parting Thoughts" section will help you in your move to Subversion 1.5.
Read the article: Subversion 1.5 Mergeinfo.







Recent Site Comments
"On this page, http://blogs.open.collab.net/svn/2008/04/subv…"
Thomas Malone"Awesome, my c# project uses Subversion as a wiki content ma…"
Scott"Great article - I found it really helpful. Thx…"
Przemek"Hi All, There is a new binary for Subversion 1.4.6 on O…"
Jeremy Whitlock"Joe, Yes, it does have this. You just add the -g option t…"
Mark Phippard"You would have to exec a script. This feature has not been…"
Mark Phippard"Much appreciated! Can --summarize be used with svnant, or …"
Greg Butterfield