[TriLUG] version control recommend
Brent Verner
brent at rcfile.org
Sat Feb 22 00:58:30 EST 2003
[2003-02-21 23:46] Morris Walton said:
| Hi,
|
| I do a little bit of personal development & was thinking about checking
| out getting some version control other than "cp foo.c foo.c.1". CVS
| seems to be used by most of the linux development community.... I don't
| need anything too complex. I was curious what everybody else uses.
CVS:
====
pros: quick && easy, especially when working solo on multiple
machines :-) simple network access to remote repositories
over ssh.
cons: can be unfriendly in the face of code refactoring and/or
source tree hierarchy modifications, since directories
are not versioned -- renaming directories requires
manual maintenance inside the CVSROOT
quick-nasty-tutorial: (for using a local repo)
'cvs -d $CVSROOT init'
creates a fresh repository
'cvs -d $CVSROOT import some-new-code brent start'
imports/creates a new module from the current directory
'cvs -d $CVSROOT co some-new-code'
checks out working version
'cvs ci' (from within working tree)
checks in changes
'cvs up' (from within working tree)
updates a working tree
subversion: http://subversion.tigris.org
==========
pros: much more advanced versioning -- directories are versioned
and can be easily renamed. more granular access control
on repository servers, since it runs behind apache.
much better (remote) file locking mechanism due to
features of DAV.
cons: complex. versioned files in binary/database format,
requiring the use of a special program to manage
the repository. network access requires apache2/mod_svn
(which is based on the DAV http extensions). Still in
alpha stage (tho I've had _no_ problems in my limited use)
quick-nasty-tutorial: (for using a local repo)
'svnadmin create $SVNROOT'
creates a repository
'svn import file://$SVNROOT some-new-code some-new-code'
imports/creates a module named some-new-code from
the directory named some-new-code
'svn co file://$SVNROOT/some-new-code'
checkout a working copy of code into current directory
'svn ci' (from within working copy)
checks in changes
'svn up' (either it updates the working copy, or quenches thirst)
There are a number of other systems, but these two are the only
I am familiar with. I can recommend both, but I'd recommend
starting with CVS, and keeping an eye on subversion :-)
I currently use CVS 90% of the time, but am already starting
(some) new projects in subversion.
I'd like to see others' experience/recommendations on this subject
as well.
hth.
b
--
"Develop your talent, man, and leave the world something. Records are
really gifts from people. To think that an artist would love you enough
to share his music with anyone is a beautiful thing." -- Duane Allman
More information about the TriLUG
mailing list