Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: more on branching

...

Basically, almost all development and fixes and such are usually done by the various developers right on trunk. Thus, the main job of the fixes branch maintainer is to triage the commits on trunk and merge pure fixes to the fixes branch, resolve conflicts, run the tests, and periodically deploy snapshots. For the most part, when things go well, it doesn't take too much time or effort. An hour or two every couple days is about it.

To set up, you'll want to:

  1. use svn cp to make a branch. Use URLs for the pathnames or it will take forever.
  2. use bin/pom-version.pl to change the version in the branch
  3. use svnmerge.py init to set up svnmerge. You may want to run this in both the trunk and the new branch in case you are contemplating bidirectional merges.

These steps work for individual developers who want to go off into a branch in the sandbox to work through something complex.

In trunk/bin, there is a DoMerges.java program that wraps svnmerge.py to assist in the merging. If the branch is setup with snvmerge.py, if you run it from you checkout directory, it will prompt for every commit on trunk to see if you want to "Merge" it, "Block" it, or "Ignore" it. It displays the commit log first so you can see what was involved. You can also check the cxf-commits archive to see the full details of the commit to help decide what action to take. If you select "Merge", it will merge the change and then prompt before committing. That will allow you to look at the merge and resolve any conflicts. (or even revert it if you didn't mean to hit Merge)

...