Institute of Information Technology, NOIDA. ➔ A web developer. ➔ A Drupal Contributor. ➔ A Mozilla Student Rep and Contributor. ➔ Twitter: @vaidikkapoor ➔ Github: vaidikkp
that is used to record changes to a file or a set of files. ➔ Why we need it? ✔ Keep track of changes that anyone makes to a set of files. ✔ Revert to a particular version of your file (state) if you need to so you don't have to remember everything you do. ✔ Compare different states of your file. ✔ Collaborate easily, independent of geography.
on your local machine. ✔ Commits are stored in a local database that keeps track of changes. ✔ Disadvantages: No way to collaborate Single point-of-failure: if your local machine crashes, all your work is lost.
on a server accessible to everyone. ✔ Read/update the latest snapshot of the files from the central server. ✔ Advantages: Very easy to collaborate. Everyone stays updated with the changes everyone makes. A lot more control over files (like who can read/write which files, etc.). ✔ Disadvantages: Single point-of-failure: if the server crashes or goes down, the work might get lost or nobody might be able to collaborate for some time. ✔ Examples: CVS, SVN, Perforce
on a server accessible to everyone. ✔ Instead of reading/updating the snapshot of files, get the whole history of changes. ✔ Advantages: Everybody has everything that is there on the server. No single point-of-failure, everybody is happy! :) ✔ Examples: Git, Mercurial, Bazaar, Darcs
for version controlling of the Kernel. ➔ Originally a command-line utility, but a wide variety of GUI clients exist. ➔ Works on Linux, Mac and Windows. ➔ Used a lot, wide community.