Analysis of Git and Mercurial Note: this analysis was done in summer 2008, when we first began scoping work for DVCS support in Google Code. Introduction This document summarizes the initial research for adding distributed version control as an option for Google Code. Based on popularity, two distributed version control systems were considered: Git and Mercurial. This document describes the features of the two systems, and provides an overview of the work required to integrate them with Google Code. Distributed Version Control In traditional version control systems, there is a central repository that maintains all history. Clients must interact with this repository to examine file history, look at other branches, or commit changes. Typically, clients have a local copy of the versions of files they are working on, but no local storage of previous versions or alternate branches. Distributed Version Control Systems (DVCS) use a different structure. With DVCS, every user has thei...