Je vois beaucoup de réponses à cette question qui s'appuient sur les sentiments de l'auteur lorsqu'il a entendu parler de l'un ou l'autre SMC. D'autres disent que tout était pur hasard. Je crois que la chance peut être retracée dans l'histoire.
Je vais parler de l'histoire.
Git et Mercurial ont été créés simultanément afin de résoudre le même problème. À cette époque, le noyau Linux était obligé de cesser d'utiliser BitKeeper , un SCM distribué exclusif qu'il utilisait depuis 3 ans. La raison en est que Larry McVoy, PDG de BitMover, la société derrière BitKeeper, a cessé de donner son logiciel gratuitement aux développeurs Linux, parce que quelqu'un de la communauté Linux l'avait fait évoluer.
Linus Torvalds, insatisfait de ce qui existait déjà, a ensuite commencé à travailler sur un tout nouveau SCM qu'il appellerait bientôt Git. Peu de temps après, Matt Mackall a lancé le projet Mercurial pour des raisons similaires.
Après avoir mis au point ces projets séparément, Matt Mackall a présenté une version avancée de son SCM et l'a comparée d'une certaine manière, en la comparant à Git (elle-même âgée de seulement deux semaines). Linus envisagea de l'utiliser au lieu de Git pour le développement du noyau, mais abandonna l'idée lorsqu'il réalisa que Mercurial utilisait Changeset pour enregistrer les modifications de révision . Il craignait que cela soit trop proche de la façon dont BitKeeper travaillait, et il ne voulait certainement rien qui puisse faire dire à quelqu'un: "Ils ont construit un clone BitKeeper".
Git était donc utilisé pour le développement du noyau au lieu de Mercurial, mais les deux étaient pertinents sur le plan technique. Le résultat final est que Git a commencé par être réellement utilisé là où il avait été conçu, alors que Mercurial n'a pas été aussi rapide que sa première grande utilisation de FOSS. Parce qu'il était doté d'un très bon design, et grâce à la persévérance de Matt Mackall, il est finalement devenu célèbre et a été utilisé pour de grands projets dans le monde réel.
Aujourd'hui, ils sont tous deux célèbres. Lequel est le plus célèbre est impossible à dire. Google Code n’a intégré Git que récemment, alors que Mercurial l’utilisait depuis longtemps. Beaucoup de projets vraiment grands et célèbres utilisent soit.
Je suppose que ce que je veux dire, c’est que lorsque la raison même pour laquelle vous avez démarré un projet disparaît, il est plus difficile de gagner en popularité, mais cela reste réalisable.
Bazaar est un autre SCM très célèbre dans le monde GNU, mais pas tellement en dehors de cela, car il a été construit dans le but de satisfaire la communauté GNU. Les logiciels vont souvent là où leurs créateurs veulent aller, et pas plus loin.
D'autre part, les GDS distribués sont clairement gagnants. Je ne vois pas beaucoup de GDS non distribués largement utilisés.