2

I do mostly small projects as a part of my research at the university, and have been using our SVN server, and also played around with Mercurial in connection with SourceForge.

I am wondering if running Mercurial or any other kind of version control on my home server would make sense. The SVN server I use at work is behind the university firewalls, and between the IT-department of the building and our IT-responsible in our department I think it's much of a hassle of starting new projects on the server and coding when I am at home. I have a Drobo FS (NAS) at home which I could imagine using for running a version control server, so that I can easily reach my code wherever I happen to be, without having to put my code on a 3rd party server.

What are the pros/cons of this approach compared to getting an account at a project hosting site with support for private projects? Is it feasible? If so, would it imply a significant maintenance workload?

posdef
  • 6,498
  • 11
  • 46
  • 94
  • Dear SO-user who has voted for closing: could you please elaborate on why you think this question needs to be closed, so perhaps I can amend it, instead of trashing the question? – posdef Jun 12 '12 at 13:50
  • I see it was seen as off-topic. I disagree. But don't worry as closing is vote based and one vote isn't really important. – Denys Séguret Jun 12 '12 at 13:50

3 Answers3

1

Of course you should do it as soon as you have projects you don't want to open on servers like github.

Most small private teams have a source server, no reason not to have one. For example gitolite is easy to install and use (I don't know for Mercurial but I think there is an easy to install solution too, probably even easier).

A side effect would be you could use something a little more modern than svn, for example a decentralized vcs you could use at home and synchronize with your server (no need to use a server for every manipulation when using mercurial and git : just set up a local repository and push to your server from time to time).

Denys Séguret
  • 372,613
  • 87
  • 782
  • 758
1

The pros are that you are in full controll of your server:

  • you can set it up any way you want it
  • noone else has access to your source/project

The cons are that you are the only one that is responsible: you have to

  • ensure the proper setup
  • do maintenance
  • perform upgrades
  • ensure protection against power outages
  • ensure adequate security measures
  • ensure reguar back-up
  • etc.
Attila
  • 28,265
  • 3
  • 46
  • 55
1

Whenever you have distributed development (either because of a team across different geographical sites, or because you develop from different sites), a DVCS makes sense.

Don't forget that, on one site, if your team members have access to the git/mercurial repo filesystem (ie the shared path of the repo), you don't even need a server at all. Those DVCS supports filesystem protocol access (albeit without authentication or authorization), aka local protocol.

You can also share your project across sites with an external service like BitBucket (supporting both public and private projects, for Git or Mercurial)

If you have write access to university network (through an USB key for instance), you don't even need to access that external service (BitBucket could be blocked, it wouldn't matter).
A git bundle allows you to export a git repo as one file, from which you can pull from as it was a repo.

So you have various options in order to access/manage a repo from different site, without having to register yourself to a centralize server (like your SVN), which you couldn't access from any site (like from home).

Community
  • 1
  • 1
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • Thank you for the advice, for the time being I think I will try out BitBucket as it appears pretty simple to work with. Whatever time I can save from maintaining a server/service is time I can invest in my research or just free time :) – posdef Jun 15 '12 at 13:05