Douglas Wade Needham <[EMAIL PROTECTED]> wrote:

> I have a question regarding branches.  At my employer, we have a major
> new feature which is going to take some considerable effort and time
> (potentially several developer weeks or months), but will create
> significant instability which already undergoes significant change.
> >From previous experience of working with CVS and branches, I know we
> can create a branch to help us reduce the instability.  As a result,
> we are doing something like the following:

>     cvs co module
>     cd module
>     cvs tag feature_branch_base
>     cvs tag -b feature_branch

> Now, as mentioned, this feature will take some time complete, and will
> eventually depend on smaller changes/features which will continue to
> be found on the mainline.  So we will want to merge the mainline
> changes into the branch from time to time, and perhaps from time to
> time (if things are stable), merging the branch back to the mainline.
> Of course, eventually we will want to merge everything back to
> the mainline when the feature is complete.  

> [ details omitted ]

If you do that, you'll be using lots of tags !  Also, I'm not sure
your final merge from branch to trunk is correct.  If I remember
correctly the solution is counterintuitive.

My usual recommendation is
    1)  Merge only from branch to trunk, never trunk to branch.
    2)  Keep your branches short.
    3)  When a branch lingers on for too long, start a new branch
        at the tip of the trunk, merge the old branch into
        the new branch and retire the old branch.

See http://groups.google.com/group/gnu.cvs.help/msg/71c6c07bdc16ceb5
(best viewed with a monospaced font).



-- 
pa at panix dot com
_______________________________________________
Info-cvs mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/info-cvs

Reply via email to