CollabNet
Submerged - CollabNet's Subversion Blog
CollabNet Community

Categories

  • Administration (7)
  • Client Tools (13)
  • downloads (2)
  • General (36)
  • Non-Developers (2)
  • Subversion Client (34)
  • Subversion Events (5)
  • Subversion in the Enterprise (25)
  • Subversion Server (21)
  • Web/Tech (1)

Past 6 Months

  • January 2010 (1)
  • December 2009 (1)
  • November 2009 (3)
  • September 2009 (1)
  • August 2009 (1)
  • July 2009 (2)

Archives

All Archives...
RSS Syndicate this blog

Subversion 1.5 Merge Tracking and svnmerge.py

Two of the questions most asked during the webinar “Branching and Merging with Subversion 1.5” were:

  • “What are the differences between Subversion 1.5's merge tracking features and svnmerge.py?”
  • “Will there be a migration utility?”

I’m in Munich at the moment and today attended CollabNet’s Subversion Power Workshop that precedes SubConf, the first conference dedicated to Subversion. Answers to both questions were covered during the merge tracking sessions.

Before talking about the advantages of Subversion 1.5 merge tracking over svnmerge.py, I think it is important to say that svnmerge.py has been a very useful tool contributed and maintained by Subversion community members. We are all thankful for their contributions. That said, Subversion 1.5 does offer several advantages over svnmerge.py:

  • SVN 1.5 tracks merge history at a per-path level of granularity and tracks file level merges. svnmerge.py only tracks merge info for the entire branch, it does not track finer levels (e.g.: files). This allows SVN to implement cherry picking, which svnmerge.py does not support.
  • svnmerge.py doesn’t always properly merge merge-properties (like svnmerge-integrated and svnmerge-blocked), leading to property conflicts when merging across multiple branches. SVN 1.5 solves this.
  • SVN 1.5 includes support for third-party tools, such as call-backs for conflict resolution. If a merge conflict arises, Subversion can call your GUI client and the client can then fire up a conflict resolution tool. This improves workflow and usability. You can see the integration between SVN 1.5 merging and GUI clients in action by trying CollabNet’s new GUI Merge Client.
  • SVN’s merge tracking includes more comprehensive auditing, like querying the merge history to answer questions about what was merged when and where.

A utility to migrate svnmerge.py merge tracking history from a previous version to Subversion 1.5 was committed to the Subversion trunk just a few days ago. What can it do?

  • Convert the latest merge history for multiple branches. In terms of history, information about the latest merges for each of your branches is the most important information because it allows for an easier merge the next time you merge. If you want to keep things simple and only migrate the latest merge history, you can.
  • The migration utility can also scan your entire repo for merge history, or accept a series of path prefixes to look at: svnmerge-migrate-history.py /path/to/repos trunk tasks branches.

We’ve uploaded a copy of the script to the download section of the Merge Tracking Early Adopter Program. You can download it and test it out on your own repository (not for production please, Subversion 1.5 is still under development). It should work well but tell us if you run into any problems. We know of one limitation: don’t run it on a Subversion 1.5 repository that already has merge history, this has not been tested yet (then again: why would you want to do that?). Right now, only the .py script is available but the Subversion developers plan to release a Windows executable later.

ShareThis
Dana Nourie

About the Author

Dana Nourie has worked with a variety of virtual communities for over 10 years, and on various platforms from discussion forums to 3D worlds like Second Life. She has worked as web developer, technical writer, site content manager, and general geek girl. She also enjoys photography, hiking, and managing her SIM Second Life.
Permalink
Categories: Subversion Client, Subversion in the Enterprise, Subversion Server

Technorati Tags: CollabNet, Open Source, Programming, Revision control, SCM, Software Configuration Management, Software development, Subversion, SVN, Version control

TrackBack

TrackBack URL for this post: http://www.typepad.com/services/trackback/6a00d834515ac169e200e54ef82ad78833

Links to this post:

Subversion-Konferenz from Onyames Weblog
Bin zur zweiten Mal innerhalb einer Woche in München. Nach einem Meeting bei EADS-MAS am Dienstag bin ich jetzt zweit Tage auf der 1. deutschen Subversion Konferenz (SubConf 2007), die in einem Hotel in Aschheim stattfindet. Irgendwie ist der Grund meine... [ Read More » ]

Linked on October 18, 2007 at 06:15 AM

Comments

There are no comments yet.

Post a comment

If you have a TypeKey or TypePad account, please Sign In

You are currently signed in as (nobody). Sign Out

  • ©2010 CollabNet Corporation
    • Site Feedback
    • Terms of Use
    • Privacy Policy
    • Copyright & Trademark