Python, licenses and CVS

Werner Schiendl ws-news at
Mon Nov 26 11:40:13 CET 2001


> > Then there's a second point: I see that many projects use version
> > control (usually CVS). I tried using DJGPP's cvs, but it
> > (unsurprisingly) doesn't work well on WinXP. There's such a thing
> > as WinCVS, but the whole process strikes me as clumsy... checking
> > in and out and committing every time something changes... what is
> > the point of this? What happens if you forget a step? Does it have
> > substantial benefits over versioning your files by hand, aside from
> > having a repository through which you can undo changes?
> Cygwin cvs works well on pre-XP versions of NT.  I haven't tried XP.
> CVS doesn't require you to check out repeatedly, and you only check in
> when there are changes.
> Version control is a huge benefit when you're trying to work on
> something with other people; it keeps you from accidentally destroying
> their work.  It's not as big a win with individual projects, but it
> still has some advantages:
> - I can type 'cvs annotate' to see when each line of code in my work
>   area was added --- what date, what time.  (And by whom.)
> - I can type 'cvs diff -D 2001-10-25' and see the changes since
>   October 25th.
> - I can type 'cvs diff' and see what changes I haven't committed,
>   which often keeps me from committing typos in comments (where I typed
>   some character in the wrong window)
> - saving my current work state is quicker than with a copy-tree, and
>   it takes less disk space, which makes it easier to back up my entire
>   work history.
> That said, I still mostly use it when I'm working with somene else, or
> when I have multiple copies of files on different machines that I
> might edit independently.  (I keep my PIM stuff --- calendar,
> addresses --- this way.)

There are some more things I really like about version control.

+ You need only backup your CVS repository and are relatively safe against
big data loss in case some part of the hardware decides to break down. (I
know that one should always have a good backup anyway, but I tend to be
realistic too). E. g. in our office we keep virtually everything in our
source control system (even documentation, specification files, etc.). When
my box is suddenly dead, the worst that is lost are my bookmarks, the rest
is backed up (at least the last working version) in source control.

+ I speeds up development a lot, at least for me. Before having source
control, I spent a lot of time to backup things before trying a new way to
do something. By now, you just get a fresh working copy of what you intend
to change, try your stuff as desired. If you find out that it's not worth
the change, you do not need to manually restore any changes (which offers
great opportunity to forget some 'minor' changes) but simple discard your
changes and let source control care for the rest.

That said, I use source control for virtually anything. One gets used to the
process very quickly, and when you come to the point where an automated
rollback does a good job, you'll safe more than you've invested (in terms of
time and hassles).

just my 0.02 ?


More information about the Python-list mailing list