CVS and divergent development

Ed McGuire emcguire at ccad.uiowa.edu
Wed May 29 05:51:39 AEST 1991


In article <1991May25.011338.3040 at m2xenix.psg.com> randy at m2xenix.psg.com (Randy Bush) writes:
>And, to add one more level of complexity to the problem,
>1.1.* is the released version
>1.2.* is where we're hacking
>A bug appears in the relased version.  We want to
>  o fix it in 1.1

We tagged the original released version as "1_1".  This permitted us to
copy out by tag.  We fixed the bug and committed the affected file(s)
with explicit RCS revision numbers to create branches.  Example:

     % cvs co -f -r1_1 src       [note Makefile revision is 1.9 for commit]
     % vi Makefile
     % cvs ci -r1.9.1 Makefile   [commits as 1.9.1.1]

>  o reissue 1.1, and

We tagged the fixed version as "1_1A" (version 1.1A).  This was
accomplished by applying the new tag to the same revisions identified
by "1_1", then fixing the tag in those files which we edited.  Thus
"1_1A" identified the version to be reissued.  Example:

     % cvs tag -f -r1_1 1_1A src                    [once]
     % rcs -N1_1A:1.9.1.1 $CVSROOT/src/Makefile,v   [once per changed file]

>  o have the fix mergable forward to 1.2.

We used "rcsmerge" to merge the differences between the "1_1" files
and the "1_1A" files with the current (1.2) version.  Example:

     % cvs update          [copy out current version]
     % rcsmerge -r1.9 -r1.9.1.1 $CVSROOT/src/Makefile,v Makefile
			   [merge changes into current version]
     % cvs ci Makefile     [commit version with changes]

In fine, we can get the job done but we have to go behind CVS' back
to accomplish it.
-- 
peace.  -- Ed
"Over here, Bones!  This man's dying!"
"Damn it, Jim!  I'm a doctor, not a . . .  What did you say?"



More information about the Comp.unix.misc mailing list