home changes contents help options

Started with comments from Jonas Bülow:

My principles for branches (shared by many others) can be summarized as:

Now, when you want to find what has happend on your branch you can diff from the branch point to the branch head by doing

Many people forget to create a tag where the branch is created which makes it hard to syncronize between branches.

vX-Y is a symbol for the prefix of the version, i.e v0-39. v0-39-1 is then a tag on the branch.

Main development is performed on the main trunk. I.e with the above example there are no tags starting with v0-39 on the main trunk after the tag branched-v0-39. The first tag should be an increment, e.g v0-40 or higher.

CVS is not very user friendly doing merges between branches. The first merge beteen branches is simple, just use the branched-vX-Y tag. Merging the work on the branch branch-vX-Y to HEAD (symbolic name for the most recent part of the MAIN trunk) by doing cvs update -j branched-v0-39 -j v0-39-1 in HEAD.

If you do incremental merges from one branch to another you need to manually keep track of points of merge. A good habbit is to tag these point as MERGED_FROM_xxx on the target and MERGED_TO_xxx on the source. The next time you do a merge you use one of these tags to refere to from where the merge should be done.