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

Bo Berglund bo.berglund at telia.com
Mon Aug 14 21:47:34 BST 2006

Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.

On Mon, 14 Aug 2006 14:13:22 -0400, "Nick Duane" <nickdu at msn.com>

>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).


(Bo Berglund, developer in Sweden)

More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook