[cvsnt] Project structure in repository as it relates to branching

Nick Duane nickdu at msn.com
Mon Aug 14 22:22:26 BST 2006


I have app1 and app2 both with virtual module lib1.  We're releasing both of 
these application into QA for our 3.8 release so I want to tag them both 
with tag t-rel-3-8.  Does this work?  If so, what is the outcome?  At some 
later point in time bugs are reported in both applications so I branch both 
of them at tag t-rel-3-8 and call the branch b-rel-3-8.  Does this work? 
What is the outcome?  The modules feature appears to hide the underlying 
structure of the repository, which sounds good.  So the developer working on 
app1 thinks he/she has their own copy of lib1 and the developer working on 
app2 thinks he/she has their own copy of lib1.  They each make separate 
fixes to lib1 contained within their app.  They commit their changes and tag 
the release.  What is the result?  Does the b-rel-3-8 branch of lib1 contain 
both fixes?

Thanks,
Nick

"Bo Berglund" <bo.berglund at telia.com> wrote in message 
news:hih1e2tkj1lm50nda0t8a8eis4br2vn52v at 4ax.com...
> On Mon, 14 Aug 2006 14:13:22 -0400, "Nick Duane" <nickdu at msn.com>
> wrote:
>
>>Thanks.  I was actually looking into modules and then modules2 to see if
>>that could help out with this situation.  I had planned to do something
>>similar to what you have done.  However, some of the people in the group 
>>are
>>concerned with the duplictation of source code (even though only one copy
>>would exist on the server).  It also appears that modules2 is something
>>specific to cvsnt so if I'm stuck with cvs 1.11 then I guess I have to use
>>modules instead.
>>
>>How do commits work on the ampersand modules?  Do they go back to the 
>>module
>>they correlate to on the server?  What if we want to create an App1 branch
>>called b-3-8 and an App2 branch of b-3-8 and both make use of shared 
>>static
>>library lib1?  Do they both attempt to create a branch b-3-8 on lib1?
>>
>
> Duplication of code is zero because you *have* to view the code base
> from the repository side. Duplicated *use* of the single source code,
> however is pretty much what this is all about.
>
> A branch is just another type of tag and it is put on the file(s)
> without much fuss. I don't think you should worry too much about the
> branch creation...
> And of course the whole idea with using modules is that you tag off of
> the top of the checked out module so that all of the files involved
> get the tag (normal or branch) at the same time.
>
> Commits done on the top level will recursively go down the tree and
> commit all files that have been edited. Typically the common or shared
> files are never or seldom edited so the commit won't affect them (only
> changed files are committed).
> And the virtual module is just a convenient way to assemble the files,
> the true location is known by CVS and this is where they will go when
> you commit too.
>
> You can't create a tag if it already exists (or rather cvs will accept
> the command but do nothing).
>
> HTH
>
> /Bo
> (Bo Berglund, developer in Sweden) 




More information about the cvsnt mailing list