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.
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.
"
git
" is your CLI and works in a DOS session as well as in a bash one.msysgit is now quite stable on Windows, as stated in the question "Git under windows: MSYS or Cygwin?" (no need for Cygwin).
GitHub is a good example of free code hosting
Check out the sources of Git at git.git.
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.
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.
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.
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:
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.