Ces derniers présentent en effet beaucoup d'avantages par rapport à l'ancienne génération représentée par subversion, et en dresser la liste dépasse totalement le cadre de ce billet.
Il m'est cependant possible de dire que ces avantages font qu'aujourd'hui ces logiciels, dont les plus représentatifs actuellement sont Mercurial et Git, ont progressivement remplacé l'ancienne génération, jusqu'à presque complètement les détrôner.
Et c'est la raison pour laquelle, en 2009, le choix de subversion n'a pas été forcément compris, autant à l'intérieur qu'à l'extérieur de la communauté des contributeurs.
Or, suite à l'arrêt du développement de PHP 6, le processus de développement de PHP est en train d'évoluer en profondeur.
Certains ont donc saisi cette occasion pour proposer sur internals@, la liste de diffusion des contributeurs, de changer une nouvelle fois de logiciel de gestion de versions au profit d'un DVCS.
Les premières réactions ont été plus que mitigées, mais heureusement, cela n'a pas découragé les promoteurs de cette migration, et le sujet est revenu depuis régulièrement sur le tapis, à tel point que le 30 juillet dernier, une RFC portant sur ce sujet a été proposée.
Et depuis son dépôt, le débat fait rage sur internals@, et il est bien difficile de prédire ce qu'il en ressortira.
En effet, certains contributeurs ne voient aucun intérêt à utiliser un DVCS, d'autres n'en comprennent pas le concept et la philosophie et d'autres encore s'inquiètent des répercussions que pourraient avoir la multiplication de dépôts de code non officiel
, voir même de la compatibilité de la licence du langage, qui empêche l'utilisation du nom PHP
, avec un tel outil.
D'autant que comme d'habitude sur internals@, il y a parfois une bonne dose de mauvaise foi dans les discussions, et il arrive que des contributeurs argumentent uniquement pour protéger leurs intérêts.
Pour autant, il est probable que PHP utilisera à moyen terme un DVCS car l'essentiel du débat porte sur le choix du logiciel qui sera utilisé et sur la façon de l'utiliser, plutôt que sur la pertinence d'utiliser un tel outil.
Reste donc aux contributeurs à se décider entre Mercurial et Git, puisqu'il semble que ce soit les deux options envisagées le plus sérieusement, et à définir la façon dont ils s'en serviront, ce qui semble être de loin le plus facile.
9 réactions
1 De Damien - 15/08/2011, 12:58
ce fil de discussion est assez hallucinant j'en reviens pas qu'on puisse avoir peur des dépôts persos des développeurs et qu'on puisse brandir la licence de PHP et l'utilisation du nom PHP comme arguments contre...
2 De bohwaz - 15/08/2011, 19:31
En réalité les DVCS datent de 2001 et Arch, puis Darcs a suivi en 2002 (c'est un fork de Arch à la base).
A noter qu'en tant que DVCS il existe aussi Fossil, bien plus simple et mieux foutu que Git. En plus il fait aussi gestionnaire de bugs et wiki. Il a été écrit par les dévs de SQLite pour les besoins de dév de SQLite, donc la base de données est en SQLite, c'est à dire que c'est à peu près le seul gestionnaire de version a avoir une base de données facilement interfaçable et récupérable en cas de souci. Bref que des avantages
3 De mageekguy - 15/08/2011, 21:16
@bohwaz : Je connais Fossil car il beaucoup utilisé par la communauté BSD.
Je ne pensais pas cependant que c'était aussi
, et j'observe depuis quelques temps une migration vers Git, sans vraiment en comprendre la raison, Git étant de mon point de vue très loin d'être la panacée en la matière.4 De Olivier Laviale - 15/08/2011, 21:49
Après des années d'inertie ça fuse dans tous les sens depuis quelques mois chez PHP et c'est tant mieux. Si on pouvait contribuer à son développement plus simplement ce serait chouette. Je pourrais mettre mon expérience poussiéreuse du C à profit
GitHub me semble un outil idéal pour ce genre de chose : une grosse communauté de devs, un site sympa, des forks en veux-tu en voilà, des soumissions de patch hyper simple et conviviale... c'est peut-être grâce à GitHub qu'il y a tant de gens qui migrent vers Git.
5 De Séb - 16/08/2011, 08:24
N'empêche, quand on regarde beaucoup de projets qui réussissent et qui avancent, ils ont tous un leader charismatique, qui amène une direction globale au projet.
Python (Guido), Ruby (Matz), Rails (DHH), Symfony (Fab), ou plus généralement même Linux, Apple ou Windows par exemple.
Avec PHP, on a l'impression d'un bateau sans capitaine et c'est parfois dommage. Pourquoi Rasmus ne s'implique pas plus ? Il se veut plus du hacker que du chef de projet ? PHP donne l'impression d'un groupe de matelots en auto-gestion. Bon, c'est déjà mieux que rien !
6 De bohwaz - 18/08/2011, 14:02
GitHub est justement une des raisons qui me hérissent le poil et me poussent à ne pas passer à Git. Si on utilise un DVCS c'est justement pour être décentralisé, pas pour aller tout centraliser sur un service commercial à la google code...
M'enfin c'est hype, ça buzz, c'est la mode, donc tout le monde y va...
Quand à la question du "leader charismatique", y'a aussi des projets qui recherchent un fonctionnement plus démocratique et participatif plutôt que de se reposer sur un dictateur bienveillant. C'est au contraire une bonne chose si Rasmus prends un peu de recul. Et pourquoi l'auto-gestion serait un inconvénient ?
7 De mageekguy - 18/08/2011, 16:40
@bohwaz : Github est plus pour moi l'éclatante démonstration que Git est un outil horrible en terme d'ergonomie, puisqu'il faut un frontal web pour qu'il soit utilisable par le commun des mortels.
Car je suis bien obligé de reconnaître que Github est à contrario une pure merveille pour gérer un projet.
D'ailleurs, j'ai du mal à comprendre ce qui te chagrine à son sujet, puisqu'un dépôt Github est juste un dépôt comme un autre et que tu peux très bien l'utiliser sans qu'il soit ton master.
Quand à l'aspect dictature vs auto-gestion, je pense que dans le cas de PHP, il y a un peu trop d'auto-gestion (ou pas assez, tout dépend du point de vue) et pas assez de dictature. D'ailleurs, jusqu'à il y a peu, c'était plus une junte militaire qui était au pouvoir, avant que le vent de la révolution ne souffle.
8 De Ivan Enderlin - 19/08/2011, 10:28
Hey :-),
Autre chose aussi. Beaucoup de personnes passent de Subversion à Git sans s'interroger sur ce qui existe autre part. Il existe Mercurial, bien plus simple à utiliser, tout aussi puissant que Git et propose un très grand nombre d'extensions.
D'ailleurs, la personne à l'origine de la RFC est David Soria Parra (dsp) qui touche beaucoup à Mercurial et aussi à Git. Il est contributeur dans les deux univers et a réussi à faire une RFC qui soit neutre. Ce qui me chagrine, c'est que le débat n'a rien de neutre. Personne ne fait l'effort de découvrir l'autre camp ou ce qu'il y a ailleurs.
Et ça, c'est bien dommage.
Notons qu'il existe des mirroirs du dépôt SVN pour Mercurial et Git (comme hg.php.net par exemple).
9 De Sébastien - 19/08/2011, 23:53
Hahaha, la métaphore de la junte militaire !
PHP est un language critiqué (et critiquable), mais il a aussi de grandes qualités. Il est assez unique et révolutionnaire même : chacun peut essayer d'écrire un ptit script sur sa page HTML. L'initiation à la programmation se fait de plus en plus par PHP en autodidacte et non par une école d'ingénieur. C'est assez fou quand on y pense ! Bref, difficile de professionnaliser PHP tout en préservant son côté "hackable".
Un ptit hors-sujet, j'ai découvert récemment ce projet :
http://gunicorn.org/
Pour faire du PHP-like avec Python très facilemement !