CVS Branch Usage

These instructions are not for use when updating onto a production release branch. For those see:
Patching a production version of D0 code.

Working on a cvs branch is really simple until you try to merge the branch back in. I do not recommend that you do that. Instead, make any changes twice, once on the branch, once on the main cvs trunk.

  1. chose your branch point. This may have already have been rtagged. If it hasn't been:
  2. newrel -t <base-rel> <mytest-branch> as usual to create a new working area. It's a good idea to name the subdirectory something with "branch" in the name.
  3. cd <mytest-branch>
  4. addpkg <package> <branch tag>
    NOTE: <branch tag> takes the place of "-h", do not use -h
  5. the rest is exactly what you aways do except
  6. to tag a new version on the branch
    cvs rtag -r <branch tag> <new tag> <package>
step 5) checks out the version of <package> at the base of the branch since this is the 1st time it's been done. Later, the same addpkg will check out the head of the branch. The key is that any -r <branch tag> always refers to the head of the branch labeled <branch tag>. Thus a branch tag (created via rtag -b) is fundamentally different than a normal tag created without the -b although the command syntax is exactly the same in the two cases. That's why we add the -r ... in step 7). It refers to the head of branch <branch tag>

In step 6) you use update, commit etc exactly as you do on the mainline. You just update from and commit to the head of the branch rather than the mainline head.

The only caviot is that I'm not super sure what adds and removes do on a branch. If you must do either to a branch, give me a call first and I'll run some tests.

To make changes to both the branch and the head, have two working directories and be careful to put the correct edits into each.


Alan Jonckheere
Last modified: Tue Dec 8 14:30:18 CST 1998