.pyc > .py ?

Roy Smith roy at panix.com
Sat Aug 3 17:45:58 CEST 2002

"Steve Holden" <sholden at holdenweb.com> wrote:
>> Also, learn about source code control systems

Rhymes <raims at dot.com> wrote:>
> What do you mean?

A source code control system (sometimes known by the more generic term 
"revision control system") is a tool which lets you store, and retrieve, 
multiple versions of a file.  The difference between using a revision 
control system or not using one on a big development project is about as 
wide a chasm as the difference between using a full screen editor and 
punching cards.

The basic idea is that when you create a new file, you check it into the 
revision control system.  Then, every time you edit the file (or, at 
least, get it to a moderately stable state), you check the new version 
back in.  When I'm actively working on a file, it would not be uncommon 
for me to do a half dozen checkins a day.  My particular choice of tools 
(CVS and emacs) integrate well with each other, making this almost 

The most common free one in use today is CVS (http://www.cvshome.org/).  
Somewhat older (but still popular) free systems are RCS and SCCS.  On 
the bleeding edge of new development in this area would be Subversion 
(http://subversion.tigris.org/).  I'm not yet convinced that Subversion 
is going anywhere, but it's got some interesting ideas and worth 
watching.  There are a whole hoard of commercial systems too.

Different systems have slightly different functionality, but the basics 
are pretty much the same no matter which system you use.  Typically, 
you'll be able to retrieve old versions, see the differences between any 
pair of versions, add log messages with each new version checked in, see 
a history of old versions along with timestamps, branch a file for 
experimental work which you may later either discard or merge back in 
with the main version, group sets of related files into packages, etc.  
Some more sophisticated systems (generally the commercial ones) have 
integrated text editors, bug tracking databases, modelling tools, or 
even whole development environments.

Find one you like and start using it for everything you do.

More information about the Python-list mailing list