Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:mentors:git-buildpackage [01/03/2014 09:04] captnfab [Utilisations] |
doc:mentors:git-buildpackage [28/09/2015 18:51] (Version actuelle) milou [Maintenir son paquet avec git-buildpackage] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
* Niveau requis : {{tag>avisé}} | * Niveau requis : {{tag>avisé}} | ||
* Commentaires : //Pour maintenir vos paquets Debian sous git avec git-buildpackage. // | * Commentaires : //Pour maintenir vos paquets Debian sous git avec git-buildpackage. // | ||
- | * À savoir : [[:doc:mentors|Contribuer à Debian]] :-) | + | * À savoir : [[:doc:mentors:mentors|Contribuer à Debian]] :-) |
- | * Suivi : {{tag>en-chantier à-tester}} | + | * Suivi : {{tag>à-tester}} |
- | * Création par **captnfab** 28/02/2014 | + | * Création par [[user>captnfab]] 28/02/2014 |
- | * Testé par <...> le <...> FIXME | + | * Testé par <...> le <...> |
- | * Commentaires sur le forum : [[url | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | + | * Commentaires sur le forum : [[https://debian-facile.org/topic-8552-wiki-mentors-maintenir-ses-paquets-debian-avec-git-buildpackage-page-1.html | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) |
**Nota :** | **Nota :** | ||
Ligne 29: | Ligne 28: | ||
==== Configuration de Git ==== | ==== Configuration de Git ==== | ||
- | <code user>git config --global user.name "Votre Nom" | + | <code user>git config --global user.name "Votre Nom"</code> |
- | git config --global user.email votre@adresse-email.org</code> | + | <code user>git config --global user.email votre@adresse-email.org</code> |
Si vous avez une clé GPG FIXME : | Si vous avez une clé GPG FIXME : | ||
Ligne 73: | Ligne 72: | ||
===== Utilisations ===== | ===== Utilisations ===== | ||
- | FIXME | + | ==== Gérer les patchs via une branche ''patch-queue'' ==== |
- | ==== Mettre à jour la branche de patchs ==== | + | Pour gérer les patchs de debian/patchs, on peut utiliser une branche git. |
+ | * Cela nous permet pour chaque branche //foo// d'avoir la branche non-patchée (//foo//) et la branche patchée (//patch-queue/foo//) | ||
+ | * Un commit dans la //patch-queue// correspond exactement à un patch dans ''debian/patches/'' | ||
+ | * Les patchs peuvent facilement être supprimés, ou ajoutés en modifiant la branche //patch-queue// (et en évitant de se tromper en utilisant //quilt add//, //dpatch-edit-patch//, //cdbs-edit-patch//, etc.) | ||
+ | * Les patchs peuvent facilement être portés sur les nouvelles versions grâce à ''git rebase'' sur la branche //patch-queue// (les patchs appliqués par //upstream// sont automatiquement détectés). | ||
+ | * Les patchs générés dans ''debian/patches/'' ont toutes les informations nécessaires pour être envoyés à //upstream//. | ||
- | === Si elle n'existe pas === | + | Inconvénient : |
+ | * Pas d'historique sur la branche //patch-queue/foo//, mais bien sûr l'historique de la branche //foo// reste disponible. | ||
+ | |||
+ | === Créer la branche de patchs === | ||
<code user>gbp pq import</code> | <code user>gbp pq import</code> | ||
+ | <note info>Cela changera la branche courante du dépôt à //patch-queue/master//.</note> | ||
+ | |||
+ | === Travailler sur les patchs === | ||
+ | * Un commit = un patch | ||
+ | * C'est une branche git classique | ||
+ | |||
+ | === Re-générer les fichiers de patchs === | ||
+ | <code user>gbp pq export</code> | ||
+ | <note info>Cela changera la branche courante du dépôt à //master//.</note> | ||
+ | |||
+ | === Enregistrer les modifications === | ||
+ | <code user>git add debian/patches</code> | ||
+ | <code user>git commit</code> | ||
+ | |||
+ | === Mettre à jour le changelog === | ||
+ | <code user>git-dch -S -a</code> | ||
+ | |||
+ | === Construire le paquet === | ||
+ | * Voir plus bas. | ||
+ | |||
+ | === Après avoir importé une nouvelle release === | ||
+ | <code user> gbp pq rebase | ||
+ | git checkout master | ||
+ | gbp pq export</code> | ||
=== Si des commits ont été fait sur //master// depuis la dernière mise à jour === | === Si des commits ont été fait sur //master// depuis la dernière mise à jour === | ||
<code user>gbp pq rebase</code> | <code user>gbp pq rebase</code> | ||
- | ==== Mettre à jour les patchs depuis la branche de patchs ==== | + | === Créer un premier patch === |
- | <code user>gbp pq export</code> | + | * <code user>gbp pq import</code> |
- | <note important>Bien penser à ''git add'' les patchs générés par l'export.</note> | + | * Créer le patch et en faire un commit |
+ | * Générer le fichier patch pour quilt : | ||
+ | <code user>git checkout master | ||
+ | gbp pq export</code> | ||
+ | * Commit: | ||
+ | <code user>git add -a debian/patches/</code> | ||
+ | <code user>git commit -m 'mon premier patch'</code> | ||
+ | |||
+ | ==== Cloner un dépôt git-buildpackage existant ==== | ||
+ | <code user>gbp clone adresse-du-dépôt-git</code> | ||
+ | |||
+ | ==== Garder un dépôt jour ==== | ||
+ | Après un clone initial avec ''gbp clone'', vous pouvez exécuter //gbp pull// pour mettre à jour les branches //debian//, //upstream// et //pristine-tar// depuis le dépôt distant. Le flot de travail ressemble alors à cela : | ||
+ | * Initiallement, cloner le dépôt une fois | ||
+ | <code user>gbp clone adresse/du/dépôt.git | ||
+ | cd dépôt</code> | ||
+ | * Travailler sur ce clone, faire des commits, récupérer les releases, faire des pushs, etc. | ||
+ | * Pour récupérer après quelques jours les mises à jours faites par vos collègues : | ||
+ | <code user>gbp pull --redo-pq</code> | ||
+ | Cela mettra à jour toutes les branches en fonction des modifications faites par vos collaborateurs, et regénérera la branche de patchs. | ||
==== Compilation du paquet === | ==== Compilation du paquet === | ||
À faire depuis la branche //patch-queue/master// à jour : | À faire depuis la branche //patch-queue/master// à jour : | ||
- | <code user>DEB_HOST_ARCH=amd64 ARCH=amd64 DIST=sid git-buildpackage --git-pbuilder --git-arch=$ARCH --git-dist=$DIST --git-tag --git-debian-branch=patch-queue/master</code> | + | <code user>export DEB_HOST_ARCH=amd64 |
+ | export ARCH=amd64 | ||
+ | export DIST=sid | ||
+ | git-buildpackage --git-pbuilder --git-arch=$ARCH --git-dist=$DIST --git-debian-branch=patch-queue/master</code> | ||
+ | Vous pouvez ajouter l'option ''<nowiki>--git-tag</nowiki>'' pour tagger et uploader la version en cours. | ||
===== Quelques rappels de git ===== | ===== Quelques rappels de git ===== | ||
Ligne 112: | Ligne 166: | ||
* [[http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html|Building Debian Packages with git-buildpackage]] | * [[http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html|Building Debian Packages with git-buildpackage]] | ||
* [[https://wiki.debian.org/Alioth/Git#Using_personal_Git_repositories|Utiliser Git sur Alioth]] | * [[https://wiki.debian.org/Alioth/Git#Using_personal_Git_repositories|Utiliser Git sur Alioth]] | ||
+ |