Development tools and practices for Pythonistas

Hans Georg Schaathun hg at schaathun.net
Sat Apr 30 09:37:09 CEST 2011


On Fri, 29 Apr 2011 20:21:58 -0700 (PDT), CM
  <cmpython at gmail.com> wrote:
:  While we're on the topic, when should a lone developer bother to start
:  using
:  a VCS?  At what point in the complexity of a project (say a hobby
:  project, but
:  a somewhat seriousish one, around ~5-9k LOC) is the added complexity
:  of
:  bringing a VCS into it worth it?

You are asking the wrong question.  It depends relatively little on the
number of lines, and much more on what you are likely to do with it.

One thing is certain.  If you are ever going to want to use a VCS,
you can just as well start yesterday.  Using a VCS is not an extra
hassle to use.  Only an added hassle to get started with.

Personally I use the VCS as
  1) My backup system; naturally doing incremental backups only.
  2) A means to synchronise multiple boxes (not just my laptop and
    my desktop, sometimes a linux and a mac system, and dedicated
    number crunchers too), and merge changes made out of synch.
  3) The possibility to make one branch to run a suite of jobs
    which may take a week or more, and still continue development
    independently on the main branch.

As you can see, the number of lines is irrelevant.  1-2 mean that
everything is VC-d, not only code for which the VCS is meant.
And 3 is of course about what kind of code.

I branch rather little.  Programming is not my day job -- nor my
main hobby, and I simply have not got the capacity to keep track
of multiple branches.   Even at 12-15kloc I have little use of
the VCS for its intended purposes.  If you take your development
project more seriously, you may do more of that within the first
500 loc...

But then, using VCS is not sufficient.  You need to /think/ VC.

In other words, taking up a VCS when the system is large enough
to require it is too late.  You need time to learn the thinking.

-- 
:-- Hans Georg



More information about the Python-list mailing list