How do I get started using version control to handle my projects? What problems does version control solve anyway? Should I use git, mercurial, SVN, or CVS?
Version control is mainly for when you have projects that multiple developers are working on. It allows you to have different developers work on different parts of code (or the same parts of code) and combine their work. It also has the added benefit, even if you are just a single developer, of making it easier to branch your project (for instance if you want to try changing something, but aren't really sure if it will work, you can do all your work and then keep the changes if you like it or revert to the old version of you don't). And, assuming you sync your repository with an external website like github, it serves as an additional backup. You should absolutely not use SVN or CVS. It basically comes down to choosing between git and mercurial.. Personally, I like git because github ( http://github.com) makes it even easier to collaborate with people on projects. For hosting your version controlled repositories (recommended if you want to work with others), try github, bitbucket or gitorious.
His explanation is pretty good, but I personally think tortoise SVN is the best choice. http://tortoisesvn.net/
What is the difference between the different version control sites/systems/companies/software, such as git, mercurial, subversion, and cvs?
CVS is very old. The other version control systems are basically made by people who want to fix problems that cropped up in CVS. Subversion attempted to square the circle, by making improvements, but keeping backwards compatibility in the commands that people used to interact with it. Even though it is better, it still draws on the basic idea of having a central repository. GIT is interesting, because it works without needing one central repository (many developers can work on slightly out of synch working directories without causing havoc).
Git and github. No question. git and mercurial are both DVCSes—distributed version control systems. Typically this means that everyone has a copy of the entire repository on their own computer, and if you want a central one it's just another copy on a server somewhere. There is an argument to be made between git and mercurial. They're both good, but mercurial is sometimes said to have a better command line interface. However, the tipping factor is github. At this point, github is the de facto developer interaction mechanism. Most import open source projects exist on github (including the Linux kernel), github provides free hosting for any public code, and it's pretty affordable for private repositories as well. Plus, they have awesome tools for working with your repository. OpenStudy's built on git and github, for what it's worth.
Join our real-time social learning platform and learn together with your friends!