[Koha-devel] cvs and branching

Pat Eyler pate at eylerfamily.org
Fri May 10 07:59:04 CEST 2002


Here's a quick picture of how we might use CVS branches to manage our
upcoming development.  An explanation follows.


                           +--MARC-+
                          /         \
                         /           \
-main line--+-----+-----+-------------+-+--------------+-> development
             \     \                 /   \            /
              \     \               /     +-rel_1_4-++---> 1.4 branch
               \     \             /               /
                \     +-rel_1_2-+-+---------------+------> 1.2 branch
                 \             /
                  \           /
                   +---NT----+


	    (This picture is a gross over-simplification.)

The main line is where all normal development should happen (e.g.,
seperation of presentation and logic and addition of http::template).
Sometimes it makes sense to create a branch.  This could be to
stabilize a release (e.g., re_1_2 and rel_1_4) or to integrate big
changes that have happened outside the tree (e.g., MARC or NT).
Branches represent temporary copies of the tree, and can be operated
on (cvs add, remove, commit, checkout, update, etc) without affecting
the main line.

Any time we create a branch, we should plan on merging (or
backporting) changes back to the main line (and perhaps to other
branches as well).  In the example above, we already have a rel_1_2
branch.  We should create an NT and a MARC branch to hold the changes
for these two development efforts.

As the NT tree is solidified, we can backport it into the rel_1_2 tree
and from there into the main line.  Once the code has been backported,
we can close this branch down.

As the MARC tree solidifies, we can merge it directly back into the
main line preparatory to creating the rel_1_4 branch.  Again, once
backported, this branch can be closed.

The rel_1_2 tree should never be closed down.  It will represent the
ongoing work on the 1.2 stable releases.  We will want to merge
changes from this branch into the main line on a regular basis.  Once
the rel_1_4 branch is created, we can backport rel_1_2 changes into
that branch as desired.

After the rel_1_4 branch has been created, we will want to merge
stabilization changes back into the main line from it on a regular
basis.


For hints on the technical bits involved in using CVS and branches,
please look at http://cvsbook.red-bean.com/cvsbook.html (or, even
better, buy a copy of the book).






More information about the Koha-devel mailing list