info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Branching


From: Mark D. Baushke
Subject: Re: Branching
Date: Tue, 24 Aug 2004 07:49:22 -0700

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Martin Marques <address@hidden> writes:

> I a project we are working on we created a tagged branch for what will
> be version 1.0 (the intention is to freeze the development before we
> release).

That is a fine idea.

> Now, what I'm doing now is working in two separated directories, one
> with the 1.0 branch, and the other with the head. Is this the correct
> way of working with cvs and branching?

It is a common way to work. For example, CVSHOME uses the
cvs1-11-x-branch for our STABLE cvs 1.11.x releases and the mainline
for FEATURE cvs 1.12.x releases.

There is also a cvs1-11-x-branch-last-merge label version which
tags the versions of the cvs1-11-x-branch that were last merged into
the mainline.

> And also, what happens if I have to modify a file in the 1.0 branch,
> but I want it to be committed to the head branch as well?

  a) commit your change to the branch-name branch
  b) checkout a new mainline copy of the module
  c) in the mainline copy, merge the change from the branch

     cvs update -jbranch-name-last-merge -jbranch-name

     now, resolve any conflicts, build it, test it, commit it

     (note: I typically make a list of just the files that get merged
      and the two versions involved with the update for the
      verification step in #d.

  d) go back to your copy of the branch-name where you did the
     commit and move the branch-name-last-merge tag forward

     cvs tag branch-name-last-merge ...list-of-files...

     this command will need to have the -F switched added to really
     move the label forward, but the error messages will contain
     the version numbers that I can use to compare the list with
     that occured in step #c.

     when I am sure that all is well, then really do the commit

     cvs tag -F branch-name-last-merge ...list-of-files...

There are many other ways to approach this operation, including just
capturing a copy of the diff and using 'patch' to your mainline version,
but the process outlined above should work fine.

> Do I have to apply the patch in each branch separately?

Yes.

        -- Mark
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFBK1Vy3x41pRYZE/gRAkzkAJ9fMRo6GjfTwNHaJaIJ+qwDj8z11gCdFIhf
KjoLHzSdONto35T0+e8rqO0=
=qyrQ
-----END PGP SIGNATURE-----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]