[development] FAQ: Why is Drupal still using CVS when X is a much better choice?

Larry Garfield larry at garfieldtech.com
Fri Aug 1 04:00:45 UTC 2008

On Thursday 31 July 2008 6:32:25 pm Sam Boyer wrote:
> > Yes this is my major concern with SVN, the total lack of tagging and
> > branching support.
> >
> > Gordon.
> This just isn't accurate. Several posts in this discussion - not even
> all of them being mine - have indirectly or directly explained that svn
> does have branching/tagging.
> Sam

I think this is a terminology difference, frankly.

In CVS, branching and tagging is an explicit, discrete operation named tag (or 
tag -b, which is just dumb).  You create a tag/branch by saying "Hey, CVS, 
make a branch from here and call it X".  CVS then does some magic copying and 
shuffling behind the scenes.

In SVN, there is no explicit concept of branching and tagging.  The way SVN 
works internally, you can copy files within the repository dirt cheap.  It 
creates essentially the svn equivalent of a hard link in the file system.  
(It's not implemented that way, but it's conceptually similar.)  Because 
copying is always an O(1) operation that takes virtually no extra disk space, 
you "branch" by copying one working copy to a new location within the 
repository.  You can then start committing to that new location and svn 
tracks the changes internally as needed.  The only difference between a 
branch and a tag is a convention to not commit to a tag; CVS would enforce 
that by its very nature, whereas in CVS there is no inherent difference 
between a branch, a tag, and just copying files around.  

Whether SVN's mechanism is more natural and obvious (you can see all your 
branches at once, very useful when different people use different branching 
structures for their modules) or more geeky-obscure (I want to "branch" so 
why do I use the copy command?  What is this, the "Start" button to 
Shutdown?) is a matter of opinion; I've seen both expressed, both in this 
thread and elsewhere.

Larry Garfield
larry at garfieldtech.com

More information about the development mailing list