La popularité de Git/Mercurial/Bazar vs qui à recommander

En passant par le nombre de questions sur ce site pour ces trois distribués, systèmes de contrôle de version, il semble que Git soit

  1. est de plus en plus populaire, ou
  2. est plus difficile (et donc nécessitant plus de questions), ou
  3. a plus de fonctionnalités (et donc nécessitant plus de questions).

Ou plus probablement une combinaison des trois. (Disons que la popularité sur ce site correspond à la popularité en général.) Voici les numéros:

La popularité de Git/Mercurial/Bazar vs qui à recommander
La popularité de Git/Mercurial/Bazar vs qui à recommander

Il n'est pas entièrement satisfaisante de trois concurrents, mais largement équivalent open source de produits à choisir. Personnellement, j'utilise Git et je suis très bien avec les deux autres. Mais quand il s'agit de recommander un système sur les autres, je voudrais vous demander: pouvons-nous commencer à recommander un en toute sécurité encore?

Commentaires à partir de la mi-2009:
La récente popularité historique de la Subversion est clairement reflété par le nombre de questions, en indiquant au moins un petit renversement de la balance vers Git à l'Mercurial ou Bazar.

Commentaires à partir de la mi-2010:
Regardez cette énorme augmentation relative Mercurial numéros. Évidemment, seuls les deux points de données ne suffit pas de montrer une tendance, mais il semble que Git et Subversion sont largement ancrées, Mercurial a vu beaucoup de la croissance, et le Bazar est restée relativement calme.

Bref commentaire, à la mi-2011:
Peut-on seulement appeler Git le gagnant? :) Pas, j'accepte l'argument selon lequel le nombre de questions n'est pas l'équivalent de la popularité. Les numéros sont forts, bien que.


Codes de reproduire les parcelles ci-dessus:

import datetime as dt
import matplotlib.pyplot as plt
dates = [
"01/06/2009",
"01/07/2010",
"01/07/2011",
"01/07/2012",
"01/07/2013",
"01/07/2014",
"01/07/2015",
"01/07/2016",
"01/06/2017",
"28/08/2018",
"27/05/2019"
]
x = [dt.datetime.strptime(d, "%d/%m/%Y").date() for d in dates]
git = [726, 3725, 9225, 17523, 27862, 41478, 55315, 71056, 86958, 102362, 110970]
svn = [2353, 5323, 9028, 12687, 15587, 18846, 21209, 23037, 24692, 25525, 25868]
mercurial = [169, 1120, 2765, 4221, 5230, 6030, 6651, 7134, 7524, 7765, 7894]
bazaar = [50, 159, 252, 351, 425, 483, 506, 525, 534, 539, 544]
ax = plt.gca()
ax.grid()
plt.plot(x, git, label="[git]")
plt.plot(x, svn, label="[svn]")
plt.plot(x, mercurial, label="[mercurial]")
plt.plot(x, bazaar, label="[bazaar]")
plt.gcf().autofmt_xdate()
plt.ylabel("number of tags on stackoverflow")
plt.ylim(0)
plt.legend()
# plt.show()
plt.savefig("comparison.png", transparent=True, bbox_inches="tight")
import datetime as dt
import matplotlib.pyplot as plt
dates = [
"01/06/2009",
"01/07/2010",
"01/07/2011",
"01/07/2012",
"01/07/2013",
"01/07/2014",
"01/07/2015",
"01/07/2016",
"01/06/2017",
"28/08/2018",
"27/05/2019"
]
x = [dt.datetime.strptime(d, "%d/%m/%Y").date() for d in dates]
git = [726, 3725, 9225, 17523, 27862, 41478, 55315, 71056, 86958, 102362, 110970]
svn = [2353, 5323, 9028, 12687, 15587, 18846, 21209, 23037, 24692, 25525, 25868]
mrc = [169, 1120, 2765, 4221, 5230, 6030, 6651, 7134, 7524, 7765, 7894]
bzr = [50, 159, 252, 351, 425, 483, 506, 525, 534, 539, 544]
n = len(dates)
intervals = [x[i+1] - x[i] for i in range(n-1)]
git_per_day = [(git[i+1] - git[i]) / intervals[i].days for i in range(n-1)]
svn_per_day = [(svn[i+1] - svn[i]) / intervals[i].days for i in range(n-1)]
mrc_per_day = [(mrc[i+1] - mrc[i]) / intervals[i].days for i in range(n-1)]
bzr_per_day = [(bzr[i+1] - bzr[i]) / intervals[i].days for i in range(n-1)]
ii = [0] + [val for val in range(1, n-1) for _ in (0, 1)] + [n-1]
jj = [val for val in range(n-1) for _ in (0, 1)]
ax = plt.gca()
ax.grid()
plt.plot([x[i] for i in ii], [git_per_day[j] for j in jj], label="[git]")
plt.plot([x[i] for i in ii], [svn_per_day[j] for j in jj], label="[svn]")
plt.plot([x[i] for i in ii], [mrc_per_day[j] for j in jj], label="[mercurial]")
plt.plot([x[i] for i in ii], [bzr_per_day[j] for j in jj], label="[bazaar]")
plt.gcf().autofmt_xdate()
plt.ylabel("average daily tags on stackoverflow")
plt.legend()
plt.ylim(0)
# plt.show()
plt.savefig("comparison-daily.png", transparent=True, bbox_inches="tight")
  • Vous pouvez consulter une comparaison globale entre Git, Mercurial et le Bazar ici: techtatva.com/2010/09/git-mercurial-and-bazaar-a-comparison
  • Depuis, il est maintenant à juillet 2011, une mise à jour peut être dans l'ordre. Une comparaison récente du nombre total d'utilisateurs est fourni sur la bzr site.
  • Je suis d'accord que la question de la balise de compte ne sont pas l'équivalent de la popularité et en fait peut-être anti-corrélés. Au lieu de cela, la question des comptages sont en corrélation directe avec le débordement de pile utilisateur des problèmes avec chacun des systèmes VCS.
  • Voici quelques chiffres d'utilisateurs réguliers de chaque vcs (et tous les autres paquets d'Ubuntu): popcon.ubuntu.com/by_inst bzr semble avoir le double de l'actif de l'utilisateur de la base de git, au moins sur Ubuntu linux, où bzr est la valeur par défaut de développement de l'outil de collaboration.
  • Quelqu'un devrait soulever une bonne question sur Meta. L', DONC l'équipe ont accès à des données précises à ce sujet, comme la façon dont beaucoup de gens ont demandé vs tags vs réponses etc. Peut-être que cela de données est dans cette célèbre dump XML de la base de données?
  • Si le monde open source est représentatif de systèmes de gestion de l'utilisation en général, puis un autre moyen de vérifier la popularité de divers systèmes est en regardant Ohloh de l'analyse de systèmes de gestion de l'utilisation, qui couvre près de 60 000 des projets. Ce serait vraiment sympa d'avoir un temps-parcelle de que. mais il n'y en a pas une que je peux voir.
  • Merci à ceux qui aident à garder les données en vie! Malgré la question étant fermée, je pense toujours que c'est un moyen intéressant d'examiner comment ces Vcs ont grandi.