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.

Paul Burba
About

Paul is a committer on the Apache Software Foundation's Subversion project and has worked on Subversion for the past nine years. He works as a software engineer for Collabnet from his home in New Hampshire and when not coding he can usually be found skiing with his nephews, mountain biking with friends, or traveling with his wife. Some time in the distant past Paul graduated from the University of New Hampshire with a degree in Business. Somewhat more recently he obtained a masters in computer science from Boston University.

Tagged with: , , , , , ,
Posted in Subversion

Leave a Reply

Your email address will not be published. Required fields are marked *

*