5.1 What branches are good for

Suppose that release 1.0 of tc has been made. You are continuing to
develop tc, planning to create release 1.1 in a couple of months. After a
while your customers start to complain about a fatal bug. You check
out release 1.0 (see section 4.4 Tags--Symbolic revisions) and find the bug
(which turns out to have a trivial fix). However, the current revision
of the sources are in a state of flux and are not expected to be stable
for at least another month. There is no way to make a
bug fix release based on the newest sources.

The thing to do in a situation like this is to create a branch on
the revision trees for all the files that make up
release 1.0 of tc. You can then make
modifications to the branch without disturbing the main trunk. When the
modifications are finished you can elect to either incorporate them on
the main trunk, or leave them on the branch.