[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