FeaturesBazaarShared repositoriesThis seem to be a way to support cheap local branches or multiple checkouts of the same repository.Bound branchesSupports bound branches, which support a very similar workflow to how one normally works with centralized systems. A branch can be bound to a remote branch (even one using another VCS like Subversion), support remote commits by still relatively fast for history queries. Bazaar emphasizes the importance of implicit renames, it can track directory renames explicitly. It may be important for refactoring or tree restructuring. Renaming is the killer app of distributed version controlMercurialNo directory trackingMercurial tracks only files, it does not care about directories. Thus it cannot have empty directories in the repository, but this can be worked around by adding a hidden file to every such directory. GitNo individual file trackingGit tracks changes to the whole repository, not individual files. File renames are implicitly found. Examples show that this system works very well. Index or Staging areaThis can be used to commit only part of the changes in the working tree, one can specify what parts he want to commit, not just individual files, but individual diff hunks. Almost every Git power-user say that it is a very useful feature, most could not live without it anymore.LinksGitWhy git is better than X (X being Mercurial, Bazaar, Subversion or Perforce)Git is better than Mercurial |