views:

211

answers:

2

We're bringing some of our web development in-house and one of my goals is to get it under version control. Right now I'm looking mostly towards HG and Git, respectively. Bazaar was knocked out of the running due to some flaky behavior.

The biggest points on my mind are:

  • Access to our web host is FTP-only. This worries me a bit.
  • The people that will be handling everything are not developers, so I need a good simple way to set things up; A good GUI is a necessity.
  • A distributed model is important as our designer is not connected directly to our network and will be trading files on a thumb drive for the moment, if not permanently.
  • Our designer is on a Mac. Everyone else is on Windows.

I've got a few questions as well:

  • I know it's possible to publish a branch via FTP from most systems. Is it possible to do anything else (revert, etc.)?
  • Git support on Windows was previously known to be horrible. It appears that things have gotten quite a bit better, though. Are things likely to keep progressing well?
  • With TortoiseHG, how do you move a versioned file? Moving it normally doesn't work (as expected), but there doesn't seem to be an "HG Move" option.
+7  A: 

This is going to be a very opinionated answer section. I will still say that Hg has better windows support. I do prefer Git from a back-end and technical standpoint, but the frontends are still quite lacking. There is no API support and the only way to interact with it is via parsing console io. Really, it all comes down to personal preference. It doesn't quite matter what you choose, they will both suite you wonderfully compared to traditional methods.

Now, as for your questions

  • With regards to FTP-only hosting, I'm not entirely sure how that would work. If your repository must be accessible from the outside and you are not able to setup your own server to host it, I would use a service such as BitBucket or GitHub. BitBucket comes with one private repository for each free account, so you could keep your work in there. Mercurial is also bundled with the tools required for hosting. You can literally have a dev fire off hg serve and an http server will spawn for you viewing pleasure. This is completely doable with Git, but will require some configuration.
  • Git support on windows HAS gotten much better, but it is still pretty far behind Hg imo. I suggest you look what applications you would like your version control to integrate with and see if they support hg or git. That may very well be the deciding factor.
  • With TortoiseHG you rename a file by right-clicking on it and selecting TortoiseHG... -> Rename File.

Again, I simply suggest you do your homework. Both will work great. It's just a matter of personal preference and supported applications at this point.

jcm
Google a bit before you make absolute claims: http://code.google.com/p/tortoisegit/There's also GitExtensions, SmartGit and GitCheetah to name a few alternatives.
kusma
I was aware of the other guis, I did not know there was a TortoiseGit. I have removed that sentence.
jcm
A: 

I've not used distributed systems like git. However, if you have a distributed team with multiple operating sytems this doesn't stop you using either CVS or Subversion (more on which to choose later).

In order to provide remote access to the repository you can use a unix server to host the repository and use ssh to let workers make a secure remote connection to the server. You can use ssh to tunnel the network port needed for the version control system from the local machine to the server. The users then actually connect as if they are connecting to a server on their local machine using localhost as the machine name.

Subversions is generally an improvement over CVS, allowing renames of files (in CVS you have to delete the file and check it in again with the new name) and also version control of directories (in CVS you can't delete a directory, only its content).

Edward Ross
I'm not one of the -1 votes, but here's why I think you got them:When someone asks about distributed version control systems, and you offer centralized systems like CVS and Subversion in response, you ought to be prepared to describe why those would be superior to what hte questioner asked about.
Novelocrat