views:

363

answers:

3

I know that this question has been asked many times before in different guises and that I'm an ignorant n00b for thinking that I could add anything to the discussion. However, I'm interested not only in the version control system but also in its hosting options, compatible applications, and Windows compatibility.

If you don't have experience with more than one system, tell me what you use: version control system, code hosting, implementation (vc program), and OS.

I only have a few constraints:

  • I'd like to use a program that works well in both Linux and Windows. That means at least an equivalent command-line interface.
  • The implementations must be stable enough that I don't have to constantly re-compile on Linux and I never have to compile on Windows.
  • The version control must have at least one compatible free code hosting site (for open-source projects). If the hosting site itself is open-source, that would be ideal.
  • The version control standard must be open-source.

Sorry if I sound like a demanding brat asking for other people to make his decisions. I just want to learn from your experience so that I don't have to switch version-control systems repeatedly.

What major, Windows-compatible version control system would you recommend?

+4  A: 

One of the most used / known revision control system is probably Subversion (SVN)

I use it everyday on both Linux and Windows (for both personnal and professionnal projects), both in CLI and with graphical tools.

  • Windows : I often use TortoiseSVN
  • Windows/Linux : I generally work with Eclipse, and its Subversive plugin
  • Windows/Linux : the "svn" command in CLI is great too, especially when you want to use some scripts to automate struff.

Note that I never had to compile anything for SVN to work (on Windows, using TortoiseSVN is OK ; on Linux Ubuntu, the packages bundled by Ubuntu are OK too)


For hosting, as SVN is used by lots of projects, you have lots of possibility, especially for open source projects.

  • For instance, Google code allows you to use SVN to host your projects
  • Same for SourceForge (see), if I remember correctly.
  • You have other possibilities, of course, like, for instance, Assembla


If you want something a Distributed revision control software, you can take a look at tools like Bazaar, Mercurial, and/or Git. Each one of those is used by some big projects (well, at least for Bazaar (MySQL uses it, I think) and Git (Linux Kernel uses it)).

I've used Bazaar on both Linux and Windows, but only in command-line ; never had any problem with it. I know there are graphical tools for both Linux and Windows, but never used those much, so I can't really say more.


Still, if you don't need a distributed system, I would go with Subversion, with absolutly no hesitation.

Pascal MARTIN
And you also get a couple of graphical SVN clients on Linux. Plus there is always the Emacs mode for all operating systems supported by Emacs.
Dirk Eddelbuettel
a side note: Google code supports mercurial too.
idursun
+2  A: 

First off, you might benefit from this recently published paper in the ACM Queue:
Making Sense of Revision-control Systems

I'll outline the two which I know the most about, others can tell you about the rest.

SVN:

GIT:

  • Extremely powerful SCM
  • Full source history in every checkout of the source tree.
  • Not the greatest windows support, but making great strides of improvement currently. http://code.google.com/p/msysgit/
  • Many free hosts: github, repo.or.cz
  • The current "cool kid" on the bock.

It sounds like you might just want to go with svn. It sounds like you just want to have stuff under version control, this way you won't have to worry about the learning curve associated with GIT.

Others to look at, but I didn't detail because of general lack of windows tools: Mercurial, Darcs, Bazaar. If you do check out mercurial you can use bitbucket and google code as a host.

Brian Gianforcaro
Much more detailed than my answer. +1. Do not forget though TortoiseGit (http://code.google.com/p/tortoisegit/) and egit (Eclipse Git Plugin, http://code.google.com/p/egit/).
VonC
I didn't know about TortoisGit, thanks, I usually stick to just CLI. I have used the Eclipse GIT Plugin, it's pretty decent.
Brian Gianforcaro
That article was quite thorough and informative. I hadn't realized the possible complexity of Git's constant merges.
Evan Kroske
A: 

I use Git, mainly because I develop on many workstation (at home or at work), and a DVCS is much easier for replicating my repository, but also for the branching, merge facilities, and speed for initializing and importing code into a new repository.

  • I'd like to use a program that works well in both Linux and Windows. That means at least an equivalent command-line interface.

"git" is your CLI and works in a DOS session as well as in a bash one.

  • The implementations must be stable enough that I don't have to constantly re-compile on Linux and I never have to compile on Windows.

msysgit is now quite stable on Windows, as stated in the question "Git under windows: MSYS or Cygwin?" (no need for Cygwin).

  • The version control must have at least one compatible free code hosting site (for open-source projects). If the hosting site itself is open-source, that would be ideal.

GitHub is a good example of free code hosting

  • The version control standard must be open-source.

Check out the sources of Git at git.git.

VonC