Question about Source Control

Frank Millman frank at chagford.com
Wed Mar 19 02:41:35 EDT 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 
this.

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 
stage.

Frank






More information about the Python-list mailing list