views:

831

answers:

3

I've used subversion for a while, and used the svnmerge.py script for a while in my old job to manage merges between branches. I believe Subversion 1.5 is now out, and was supposed to have some branch / merge management system integrated with it.

So, can someone give me a quick overview of how to track merges in a branch with Subversion 1.5? Are there any pitfalls with using this support? Do I need to ensure all the team upgrades to 1.5 before using this support?

+3  A: 

Usage

Merge tracking is managed by the client and stored in a property (svn:mergeinfo).

To use merge tracking you just merge as usual but without the revision range:

svn merge trunkURL

The client will take care of reading the properties to see what revision(s) need to be merged in and then update the properties with the newly-merged revision(s).

Here is a pretty basic overview of the process.

Pitfalls, etc.

I personally haven't run into any problems with merge tracking, but my usage of the feature has been pretty light.

Upgrading

There are two upgrades you'll need to do to get merge tracking:

  1. Server: Your server must be running 1.5 to get merge tracking support.
  2. Client: You can use a 1.x client against a 1.5 server, but you won't get merge tracking.

Just upgrade everyone.

Chris Zwiryk
+1  A: 

An addition to Chris's post:

You may also have to upgrade the repository itself, if you run into "Retrieval of mergeinfo unsupported" messages. The command to run on the server to do this is,

svnadmin upgrade REPOS_PATH

where REPOS_PATH is the local path to your repository of course.

Ishmaeel
A: 

If you've built your repository with the ~ svn-merge.py command you can upgrade your repository to use svn native merge tracking with the XXX command.

Hugo