Git Mercurial
Придумалась такая аналогия. Дорожки на газонах делаются двумя способами:
1. Дезаенер ландшафтов рисует на компьютере красивый план газона с симметричными тропинками и развязками. Потом это всё реализуют, а после этого люди заново прокладывают тропинки так, как им удобно, по траве, в обход этих дорожек. Бывает, ещё и дырку в заборе проламывают.
2. Укладывают плитку или асфальтируют тропинки, которые люди проложили. Да, получается не совсем стройно и симметрично, но зато люди ходят именно по этим дорожкам, не вытаптывают грязные тропинки по траве и заборы не ломают.
Дык вот, mercurial — это вариант
#1, git — вариант
#2.