Oui en effet, la documentation du protocole est importante, mais git n'avait pas vocation a avoir 20 milliards de clients à la base. A la base, il fallait trouver un remplacant a bitkeeper au moment ou les conflits entre bitkeeper et le monde opensource a fait stopper la licence a titre gratuit que possédait linux pour gérer ses versions. Bref, pas le temps de lancer une tournée d'opinion de savoir comment gérer un nouveau protocole fantastique pour les versions.
Le but ct d'avoir quelque chose permettant de gérer la charge de travail que bitkeeper tenait sur le noyau linux et si possible faire mieux.
Comme ca devait etre rapide et comme c'est aussi un "con" egocentrique (
http://fr.wikipedia.org/wiki/Git#Origine_du_nom ), Linus s'en est chargé lui meme au debut, en decidant quelle fonctionnalité il avait besoin. Un projet guidé par un benevolent dictator, quoi. Et puis bon, Linus n'imagine pas trop l'interet de développer un client pour systeme windows (qu'il doit considérer, comme tout bon "con" égocentrique, un systeme d'un autre age ne méritant que la mort. Pourquoi developper pour ce systeme ?)
Depuis, le projet est maintenu par une autre personne et d'autres développeurs, il a pris du poids dans le monde de la gestion de version (notamment grace a github et ce genre de plateforme). Mais je pense que l'idée de créer une spec de protocole ne leur a pas effleuré l'esprit car ils ne voient pas l'intérêt d'une telle chose actuellement. J'imagine qu'il y'a de quoi ecrire des wrappers pour d'autres langages et que ca leur suffit.
Apres, si tu veux savoir un peu comment ca fonctionne, tu peux lire ca :
http://git-scm.com/book/en/Git-Internals . Meme si ca n'est pas une spec, ca explique déjà plus comment git gère son archivage, sa gestion des hashs etc. Mais encore, ce n'est pas une spec.
Mais en même temps, je ne connais pas beaucoup de specifications pour des systemes de gestion de versions. Je ne pense pas qu'il en existe pour SVN, CVS, ClearCase, VSS, Team Foundation Server, mercurial, darcs, fossil ou autre.
Partager