[PD-dev] branching advice

Hans-Christoph Steiner hans at eds.org
Tue Dec 5 01:57:41 CET 2006


Since Thomas is talking about branches, I thought I would forward  
this advice I received off-list.  I think it makes a lot of sense:

On Nov 2, 2006, at 9:00 AM, Jonas Bülow wrote:

> Hi,
>
> I have some 8 years of using CVS for 40-50 modules. As I understand  
> you understand it is of great importance to have a good policy  
> working with branches in CVS.
>
> My principles for branches (shared by many others) can be  
> summarized as:
>
> - set a ordinary tag on the branch point, name it BRANCHED_VX_Y
> - create a branch on the branchtag, call if BRANCH_VX_Y
>
> Now, when you want to find what has happend on your branch you can  
> diff from the branch point to the branch head by doing
>
> cvs diff -r BRANCHED_VX_Y -r BRANCH_VX_Y
>
> Many people forget to create a tag where the branch is created  
> which makes it hard to syncronize between branches.
>
> VX_Y is a symbol for the prefix of the version, i.e V0_39. V0_39_1  
> is then a tag on the branch.
>
> Main development is performed on the main trunk. I.e with the above  
> example there are no tags starting with V0_39 on the main trunk  
> after the tag BRANCHED_V0_39. The first tag should be an increment,  
> e.g V0_40 or higher.
>
> CVS is not very user friendly doing merges between branches. The  
> first merge beteen branches is simple, just use the BRANCHED_VX_Y- 
> tag. merging the work on the branch BRANCH_VX_Y to HEAD (symbolic  
> name for main trunk) by doing "cvs update -j BRANCHED_V0_39 -j  
> V0_39_1" in HEAD.
>
> If you do incremental merges from one branch to another you need to  
> manually keep track of points of merge. A good habit is to tag  
> these point as MERGED_FROM_xxx on the target and MERGED_TO_xxx on  
> the source. The next time you to a merge you use one of these tags  
> to refere to from  where the merge should be done.
>
> Hans-Christoph Steiner wrote:
>> On Oct 30, 2006, at 3:24 PM, IOhannes m zmölnig wrote:
>>> Hans-Christoph Steiner wrote:
>>>> Anyone have any good advice on making a branch in CVS? Or  
>>>> perhaps a good HOWTO?  Its time to make a branch for the  
>>>> Pd-0.39.2-extended release.
>>>
>>> what is your exact problem?
>>>
>>> how does "cvs tag -b extended_0_39_2" (within the cvsroot) not  
>>> fit your needs?
>>>
>>>
>>> btw, googling for "cvs tag"  returned http://www.psc.edu/~semke/ 
>>> cvs_branches.html as the second hit (the first one was a dead link)
>>>
>>> there is no magic involved in tagging.
>>>
>>> btw, i thought someone mentioned a "best practice CVS" document a  
>>> while ago ;-)
>> I know tagging, that's dead simple.  I am talking about a branch.   
>> I can google "cvs tag" or "cvs branch" myself too, but a personal  
>> recommendation is worth a lot more than a google search.
>> I am more interested in experience in managing changes in the  
>> branch.  Some changes should get folded in to MAIN, others are  
>> only for the branch.  I am sure there are things that you can do  
>> that will make your life easier when the time to merge comes.
>> .hc
>> --------------------------------------------------------------------- 
>> ---
>> All information should be free.  - the hacker ethic
>> _______________________________________________
>> PD-dev mailing list
>> PD-dev at iem.at
>> http://lists.puredata.info/listinfo/pd-dev
>> <jonas.bulow.vcf>


------------------------------------------------------------------------

                                               http://at.or.at/hans/


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20061204/c6e2ad9f/attachment.htm>


More information about the Pd-dev mailing list