Question about Source Control
frank at chagford.com
Wed Mar 19 07:41:35 CET 2014
"Frank Millman" <frank at chagford.com> wrote in message
news:lg6s09$irl$1 at ger.gmane.org...
> Hi all
> I know I *should* be using a Source Control Management system, but at
> present I am not. I tried to set up Mercurial a couple of years ago, but I
> think I set it up wrongly, as I got myself confused and found it more of a
> hindrance than a help. Now I am ready to try again, but I want to avoid my
> earlier mistakes.
Many thanks to all for the responses. I have a much better feel for it now.
If anything, I have moved from being confused because I did not understand
it, to being confused because there are so many options I am not sure which
to select. However, I consider this to be progress!
I have decided to stick with Mercurial, simply because that is what I used
in my previous attempt and I felt comfortable with it. Also I believe that
Python itself uses it, so if it is good enough for them ...
Before actually plunging in, I would like to summarise what I think I have
understood, and what steps I propose to take.
I realise now that my initial problem had nothing to do with SCM/VCS, and
everything to do with my lack of knowledge of basic networking protocols. As
I understand it now, if I want to share the repository over a network, I can
choose between SSH and HTTP. I like the following quote from Joel Spolsky -
"The quick-and-dirty way to make a central repository is to use Mercurial's
built in web-server. ... I'm going to configure the server to allow anybody
in the world to do anything they want to it. ... Needless to say, this is
rather unsafe, but if you're on a nice protected LAN at work and there's a
good firewall and you trust everybody on your LAN, this is reasonably OK."
This describes my situation well, so to keep things simple I will start with
To recap my basic setup, I have machine A which holds the source directory,
machine B which is used to edit the program, and machines B and C which are
both used to run the program.
Initially, to prove that I understand the concept, I propose to install
Mercurial on all three machines. Machine A will hold the central repository,
which I will clone onto machines B and C. After editing on B, I will 'push'
to A, and then from C 'pull' from A to get the latest version.
If this works, I will simplify it to make my life easier. My first thought
was to remove the clone from machine C and set up an nfs share pointing to
the working directory on machine A, so I don't need the 'pull' step. Then I
thought, why not just point to the working directory on machine B, so then I
can test the changes on C directly, without even having to 'push'. I realise
that this is defeating the object of version control, but I think it makes
sense. I will still use version control to maintain a full history of the
project on machine A.
I appreciated Mark's comments about hosting his project on code.google.com -
not just the mechanics, but the benefits that he experiences from sharing
his code. I am actually getting closer to being able to do that with my
project. Over the last few years I have frequently 'trashed' whole sections
of my code and rewritten them, which I suspect would not endear me to
someone attempting to collaborate with me. However, the broad framework is
starting to settle down now, so I am starting to think about putting it out
there. Then the question is which hosting service to use - there are so many
of them. I will probably come back here for more advice when I get to that
More information about the Python-list