I have done some basic web programming in the past and wish to develop my skills further and begin doing large scale projects as a contractor. I have no experience with version control to this point but know enough about it to know I want to use it. What version control systems are available for a web platform and which are the most popular (I'm assuming they'd be most popular for ease of use and functionality...)? Thanks!
Really any VCS will do. Your major options (sorted by what I would prefer)
- Mercurial - I actually use this to keep my entire website in version control on the host. Its quite easy to setup on any webserver that has python. You can also copy and paste your own build.
- Git - I tried and failed to get this working on Godaddy. However if your just going to be doing it locally its still a respectable option. In the Mercurial VS Git debate, it just depends on what you prefer
- Subversion - Completely different from the above. I've never tried to keep a website in svn, but it is an option. Really though I would recommend this.
Consider what your are trying to do. Nearly all VCS systems will
- Keep your code base in a remote place.
- Split off code to work on.
- Track changes as you make them.
- Commit changes as you work.
- Merge your modified code back into the base in an orderly manner.
It also matters whether you are working alone or with a team. If you are part of a team, the system has to work for them as well as for you.
Personally, I'm using subversion, but would like to move to Git. Git seems to offer finer grained control of forking code, making commits as you work, and merging it all back together.
I'm not an expert by any means, so it seems to me that the most important thing you could do is to try out a few: Git, SVN, Mercurial, maybe others. See how well they fit with your work pattern. If they don't make it easy to fork, modify, and commit, then you won't use the tool, regardless of what others say of it. You can try these things out for free on a local basis. Only you can tell if you like it enough to actually use the system.