[XCSSA] Programming Source Control

xcssa@xcssa.org xcssa@xcssa.org
Sat, 18 Nov 2006 20:11:21 -0600


xcssa-admin@xcssa.org wrote:
> subversion is basically CVS with most of the drawbacks removed.
> 
> Of course it implements branching as copies, so if you have a bunch
> of branches it's not desirable.

A subversion tag is a read-only copy of the directory tree.  It's a copy of 
the entries in the database, not an actual copy of the files.  When you 
branch and commit, it will store diffs against the revision you copied from 
rather than making an actual copy of all the files in a whole new revision 
and starting from there.  That is actually very desirable.

 From the subversion site:

"Branching and tagging are cheap (constant time) operations

There is no reason for these operations to be expensive, so they aren't.

Branches and tags are both implemented in terms of an underlying "copy" 
operation. A copy takes up a small, constant amount of space. Any copy is a 
tag; and if you start committing on a copy, then it's a branch as well. 
(This does away with CVS's "branch-point tagging", by removing the 
distinction that made branch-point tags necessary in the first place.)"

Nick