{{tag>git programmation kernel linux tutoriel}}
----
Traduit du guide [[https://wiki.ubuntu.com/KernelGitGuide|Kernel Git Guide]] en anglais du site [[http://ubuntu.com|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'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] [[apt://git-core|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-.git ubuntu-
'''' 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 [[mailto:kernel-team@lists.ubuntu.com|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 [[mailto:kernel-team@lists.ubuntu.com|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
===== 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//public_html/archives/ubuntu-2.6.git
Vous devez envoyer un courriel à la liste de diffusion [[mailto:kernel-team@lists.ubuntu.com|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 =====
* **(fr)** Documentation du wiki de [[:git|Git]] pour plus d'informations sur les commandes ;
* **(en)** [[https://wiki.ubuntu.com/KernelGitGuide|Guide original]].
----
//Contributeurs : [[utilisateurs:mr_pouit]].