Table des matières

, , , ,

Traduit du guide Kernel Git Guide en anglais du site Ubuntu.com.

Comment utiliser Git pour développer le noyau Ubuntu ?

Présentation

Git

Git est un outil de gestion de code source (SCM) développé par Linus Torvalds, utilisé par les développeurs du noyau Linux. Ubuntu a adopté cet outil pour le code source de son noyau afin d'interagir davantage avec la communauté et les développeurs.

Arbres Git actuels

Les arbres Git actuels du noyau Ubuntu sont visualisables sur http://kernel.ubuntu.com/git.

Installation

Pour installer Git, il vous suffit d'installer le paquet git-core.

Utilisation du dépôt du noyau

Création d'un dépôt local

Pour télécharger une copie locale du dépôt git du noyau Linux Ubuntu, utilisez la commande suivante :

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<version>.git ubuntu-<version>
<version> est le nom de version voulue, à remplacer par gutsy, karmic, etc.

Cela peut prendre quelques temps, selon la vitesse de votre connexion internet. Il y a environ 310 Mo de données à télécharger à l'heure actuelle (et ça augmente continuellement).

Mise à jour des sources

Une fois la récupération effectuée, vous pouvez conserver votre arbre à jour en exécutant (dans le répertoire contenant les sources) :

git pull

Soumettre des changements au dépôt principal

Sachant que le dépôt principal n'est pas accessible en écriture par le public, le principal moyen de faire parvenir des patchs à l'équipe du kernel est d'utiliser git-format-patch*. Le résultat de cette commande peut ensuite être envoyé à la liste de diffusion kernel-team.

Néanmoins, si vous possédez un dépôt public Git depuis lequel les changements peuvent être ajoutés, vous pouvez utiliser git-request-pull pour générer un mail à envoyer à la liste de diffusion kernel-team.

Modèles de soumission

Dans debian/commit-templates/ , vous pouvez trouver plusieurs modèles qui doivent être utilisés lorsque vous proposez des changements à intégrer au dépôt du kernel Ubuntu. Les modèles de soumission contiennent des commentaires expliquant comment renseigner les informations requises. Notez par ailleurs que toutes les soumissions doivent avoir une ligne Signed-off-by (l'option -s de git-commit).

Une commande git-commit typique ressemblera à :

git-commit -s -F debian/commit-templates/patch -e

Notez que l'option -e (pour edit) doit suivre l'option -F, sans quoi Git ne vous autorisera pas à éditer le commit-template avant de soumettre les changements.

Voici à quoi ressemble un exemple de journal des changements :

  [UBUNTU:scsi] My cool change to the scsi subsystem

  UpstreamStatus: Merged with 2.6.15-rc3

  My cool change to the scsi subsystem makes scsi transfers increase
  magically to 124GiB/sec.

  Signed-off-by: Joe Cool Hacker <jch@reet.com>

Développeurs du noyau Ubuntu (avec un accès à rookery)

Afin d'avoir votre dépôt Git chargé automatiquement, suivez ces instructions.

D'abord, identifiez-vous sur rookery, et exécutez ces commandes :

mkdir public_html/archives
cd public_html/archives
git clone -s -n -l /home/bcollins/public_html/archives/ubuntu-2.6.git ubuntu-2.6
mv ubuntu-2.6/.git ubuntu-2.6.git
rmdir ubuntu-2.6

Cela va créer ~/public_html/archives/ubuntu-2.6.git . Attention, vous ne devez pas l'utiliser pour mettre à jour (il faut toujours mettre à jour à partir de rsync.kernel.org). Cependant, vous pouvez autoriser d'autres à mettre à jour depuis ce dépôt si vous avez des choses que vous voulez qu'ils testent. Le drapeau -s autorise votre dépôt à partager des objets avec les dépôts principaux. Cela permet de réduire l'espace occupé sur rookery.

git clone -s -n -l /home/bcollins/public_html/archives/ubuntu-2.6.git ubuntu-2.6
mv ubuntu-2.6/.git ubuntu-2.6.git
rmdir ubuntu-2.6

est équivalent à :

git clone --bare -s -n -l /home/bcollins/public_html/archives/ubuntu-2.6.git ubuntu-2.6.git

Pour charger votre dépôt vers son clone sur rookery, tapez :

git push ssh://rookery.ubuntu.com/home/<nom>/public_html/archives/ubuntu-2.6.git

Vous devez envoyer un courriel à la liste de diffusion kernel-team avec votre nom d'utilisateur, afin d'être ajouté à la liste des dépôts à charger dans le dépôt principal.

Tout travail effectué sur le master (HEAD) sera automatiquement intégré dans le dépôt principal. Tout travail que vous souhaitez garder localement doit être fait dans une branche.

Voir aussi


Contributeurs : mr_pouit.