gEDA-dev: How to branch correctly using CVS

Dan McMahill dan at mcmahill.net
Mon Nov 6 17:19:55 EST 2006


Werner Hoch wrote:
> Hi Ales and all,
> 
> On Monday 23 October 2006 06:14, Ales Hvezda wrote:
> 
>>The point of this e-mail is to direct everybody's attention to the
>>following wiki page:
>>
>>http://geda.seul.org/wiki/geda:devel-tips
>>
>>that describes how to do CVS branching correctly.  Please read it and
>>ask any questions.  Many thanks for Dan for pointing out my follies,
>>a way to recover, and the content for this page.
> 
> 
> I've created a branch too, and I'll hope to speed up the autonumber 
> development a little bit.
> Let's hope I haven't broken anything.
> 
> The tagname for the branch is "autonumber" and "autonumber-base" for the 
> branch root.
> 
> I have the following questions:
> I've created the tag inside gaf/. I'm wondering if it's possible to 
> branch only inside one directory? (e.g. gaf/gschem)

yes.  Just do the branch/tag operations from gaf/gschem instead of gaf/.

> Second: The two commands mentioned in the wiki:
>   cvs tag mine-base
>   cvs tag -b -r mine-base mine
> didn't tag my local cvs directory. 
> 
> I had to do an additional:
>   cvs update -r mine
> to change the cvs tag to my branch.

The 'cvs tag' operation operates on the *repository* and should not 
change what you have in your local directory.  You are correct that to 
update to a branch you have to use the '-r branch' flag.

> The manpage has a similar description to branch:
> [[ hacked sources are present ]] 
>  $ cvs tag -b EXPR1 
>  $ cvs update -r EXPR1 
>  $ cvs commit 

but that is missing the all important branch point tag that you start with.

> I think some bitmap files are now in the trunk and not in my branch, as 
> I've commited them before I noticed, that my local copy wasn't tagged 
> as branch:
> http://cvs.seul.org/viewcvs/viewcvs.cgi/eda/geda/gaf/gschem/bitmap/?only_with_tag=MAIN#dirlist
> 
> I'll add the bitmaps to my branch too, but what will happen with the 
> bitmaps in the trunk?
 >
 > Any hints for this?

yes.  Check them in to your branch, and on the trunk, add the branch 
point tag to them.


cd /path/to/branch
cvs add foo.xpm
cvs ci -m 'add foo.bmp from trunk' foo.xpm

cd /path/to/head
cvs tag autonumber-base foo.xpm

The branch point tag is always used to indicate the "starting point" for 
any file on the branch.  Note that the "starting point" can and will 
change when you merge changes that have taken place on the trunk to your 
branch.  In this case the trunk change that took place was the addition 
of a file.

-Dan




More information about the geda-dev mailing list