apt-git
23 avr. 2009
Par davux - geekeries - Lien permanent
Quelques idées en vrac, y'a peut-être des grosses conneries, parce que ça vient de me traverser l'esprit. En jouant avec git ces derniers jours, je me suis dit qu'en fait, le processus de développement et la gestion des paquets Debian ont quelques points communs conceptuels avec git.
Par exemple, l'upgrade de paquet, finalement, ça ressemble à git pull, ou git fetch puis git merge. Vu qu'en général un paquet remplace l'ancien, le seul cas de conflit à gérer c'est les fichiers de conf, et c'est de la résolution de conflit typique de git. Si un fichier de conf n'a pas été modifié, il est mis à jour si une nouvelle version existe. Par contre, si le fichier a été modifié, on gère le conflit "à la main" (mais cadré par git). Déjà maintenant avec dpkg, on peut voir un diff, garder l'ancien fichier, écraser avec le nouveau, ou résoudre le conflit à la main. Très "git merge", quoi.
Du coup, dans la même idée, on peut imaginer l'évolution des paquets "côté Debian" comme des branches ("stable", "testing", etc.). Par ailleurs, sur un ordinateur donné, pour chaque paquet, la version installée localement serait une branche à part entière ? (ou bien l'ensemble des paquets serait une branche ?) Du coup :
- juste downloader les paquets c'est une sorte de git fetch d'une branche officielle.
- faire une mise à jour de paquets c'est merger cette branche officielle dans la branche locale.
Idem, lors des passages d'un paquet entre sid -> testing etc., et aussi pour la sortie d'une nouvelle version de Debian. On peut peut-être voir ça en termes de branches git ? de tags ?
Et l'upload de paquet par un DD ? git push ?
Plein de questions encore...
- qu'en est-il de l'update ?
- est-ce qu'on peut comparer un Changelog.Debian avec ce qui serait le ''git log' sur la "branche" du paquet officiel ?
- comment mettre à profit l'historique de modifications ? (pour la branche locale; pour les branches de paquets côté Debian)
- en quoi l'aspect décentralisé de git est intéressant ? comment ça peut se voir pour les mirrors ? finalement le /etc/apt/sources.list serait une liste de dépôts git...
- est-ce que le concept de backport est comparable au concept de git rebase ? je maîtrise ni l'un ni l'autre alors c'est peut-être une connerie...
- est-ce qu'on pourrait imaginer un frontend "git-like" à dpkg ? ou une réutilisation plus directe des algorithmes et concepts de git par dpkg ?
- vu sous cet angle, comment se voient les outils tels que dpkg-divert ?
bref, des idées en vrac, mais si je les mettais pas ça serait resté dans ma tête, alors que quitte à penser à des trucs idiots, autant les dire aussi, hein.