Du bof au pire :

  1. Y a des hébergements gratos,
  2. On peut commiter quand on veut y compris des trucs qui marchent pas encore sans embêter ses copains,
  3. C'est bien, on peut changer l'ordre des commits et pleins d'autres trucs trop cools,
  4. On peut effacer des révisions [1]


Avant de tailler tout ça en pièces, il faut que je vous dise que finalement, j'aime bien les gestions de versions distribuées. Voilà, c'est dit !
Alors GO !
Pour le premier point, là, c'est super facile de montrer à quel point ça ne devrait pas avoir le poids que cela a aujourd'hui avec notamment GitHub et Bitbucket.
Tout ce que l'on a dit à propos des gestions centralisées était justement qu'elles étaient centralisées, qu'elles constituaient un point individuel de défaillance et empêchaient l'utilisation hors réseau. Cela donne donc une définition des avantages et inconvénients de la décentralisée sur Wikipedia.
Là, ça devient déjà presque évident. Avec les deux sites sus-nommés, on re-centralise et ne pas avoir de compte sur l'un ou l'autre est quasiment équivalent à ne pas être sur Facebook, une sorte de paria du développement.
Alors oui, tout le monde a bien une version décentralisée de son dépôt mais quand il faut faire des push/pull/clone, on passe par l'hébergeur alors que logiquement, seuls une page web aurait dû suffire. D'ailleurs, ça a même l'air de dispenser totalement de page Web décrivant le logiciel, c'est le grand retour du README que plus personne ne lisait :D

A partir du deuxième point, on rentre dans les problèmes non-techniques car ils touchent à l'utilisation qui est faite des gestions de versions.
Le point 2 est une fonctionnalité intéressante car elle permet effectivement de travailler sans gêner les autres mais elle a un double tranchant pas triste. Les défenseurs de cette fonctionnalité finissent par utiliser la gestion de versions comme une sauvegarde de leur travail[2] quelqu'en soit l'état et sous prétexte que ce qu'ils font dans leur coin ne se voit pas.
Je dis NON !!! Quand on a peur de paumer son travail, on utilise une clé USB, un disque externe pas un logiciel dont le but est de maintenir un historique des développements et pas de tracer les errements informatique du développeur. Par analogie, qui garde les brouillons de ses conceptions ?[3]

Le point 3 et 4 sont tout simplement une hérésie. Dans le but de faire beau et vu qu'on a déjà usé et abusé du point 2, forcément, on est dans l'obligation de nettoyer derrière soi. Ben oui, ça risquerai de se voir que l'on est passé par une étape stupide.
Là encore, c'est n'importe quoi, un repository est un référentiel ou un dépôt, c'est selon. Ce n'est en aucun cas un dépotoir. Il faut assumer ses conneries car elles font partie de l'histoire du code et révèlent, des fois, quelles étaient les intentions initiales, l'ordre de sa pensée.

Micro$oft a sa propre gestion de versions centralisée qui répond au doux nom de Visual Source Safe et ce que je trouve rigolo, c'est que Safe dans ce cas est un coffre-fort et que certaines fonctionnalités fournies par les nouveaux outils sont détournées pour transformer le coffre-fort en vulgaire placard à cadavres qu'on nettoie de temps en temps.

Voilà, j'étais énervé, y a forcément des trucs pas objectifs voire erronés mais dans ce cas, y a les commentaires pour me le dire... Sans faire de tentative d'évangélisation parce que ça m'énerve encore plus :)

Notes

[1] Là, ça touche du monde, ClearCase (c'est facile en plus), Git (facile avec rebase), Monotone (a l'air d'être faisable mais dur), Mercurial (pareil que Monotone)

[2] J'ai d'ailleurs des problèmes similaires, mais dans une moindre mesure, au boulot avec Subversion

[3] C'est peut-être d'ailleurs là que ça blesse :D