Magic branch numbers -- CVS---Concurrent Versions System
Up: Troubleshooting
Top: Top
Magic branch numbers
Externally, branch numbers consist of an odd number of
dot-separated decimal integers. See Revision
numbers. That is not the whole truth, however. For
efficiency reasons cvs sometimes inserts an extra 0
in the second rightmost position (1.2.3 becomes
1.2.0.3, 8.9.10.11.12 becomes 8.9.10.11.0.12 and so
on).
cvs does a pretty good job at hiding these so
called magic branches, but in at least four places the
hiding is incomplete.
- The magic branch can appear in the output from
cvs status in vanilla cvs 1.3. This is
fixed in cvs 1.3-s2.
- The magic branch number appears in the output from
cvs log. This is much harder to fix, since
cvs log runs rlog (which is part of the
rcs distribution), and modifying rlog to
know about magic branches would probably break someone's
habits (if they use branch 0 for their own purposes).
- You cannot specify a symbolic branch name to
cvs log.
- You cannot specify a symbolic branch name to
cvs
admin.
You can use the admin command to reassign a
symbolic name to a branch the way rcs expects it
to be. If R4patches is assigned to the branch
1.4.2 (magic branch number 1.4.0.2) in file
numbers.c you can do this:
$ cvs admin -NR4patches:1.4.2 numbers.c
It only works if at least one revision is already
committed on the branch. Be very careful so that you
do not assign the tag to the wrong number. (There is
no way to see how the tag was assigned yesterday).
Up: Troubleshooting
Top: Top