HG und GIT haben den Vorteil des lokalen Repos. Jeder Entwickler hat die komplette Versionshistorie bei sich auf dem Rechner und kann auch arbeiten selbst wenn der zentrale Repo-Server mal nicht erreichbar ist. Und sollte es da zu einem Datenverlust kommen wäre das auch nicht schlimm, da dann einfach ein beliebiger Entwickler ein Clone macht und schon ist das komplette Repo wieder auf dem Server.
Nachteil dieses Verfahrens ist natürlich, dass verstärkter Merge-Aufwand auf einem zu kommt, da es eben z.B. keine Locks gibt. Es gibt da prinzipiell nix besseres oder schlechteres, es muss einfach nur zur Arbeitsweise passen. Auf Arbeit setzen wir z.B. auf
SVN da wir die Arbeit mit Locks aus MS Visual SourceSafe gewohnt waren und damit sehr effektiv umgehen können. Privat nutze ich HG, da ich dann weniger Aufwand für Datensicherung investieren muss, da ich mein komplettes Repo an mindestens zwei Stellen habe. Außerdem unterscheiden sich beide System in der Art, wie und für was mach Branches benutzt. GIT hat da z.b. noch einen extra Staging-Bereich wo man auch Teiländerungen einer Datei commiten und mehr aufgabenorientiert vorgehen kann.