Gerrit - Guide rapide

Gerrit est un outil de révision de code basé sur le Web qui est intégré à Git et construit sur le système de contrôle de version de Git (aide les développeurs à travailler ensemble et à maintenir l'historique de leur travail). Il permet de fusionner les modifications du référentiel Git lorsque vous avez terminé les révisions de code.

Gerrit a été développé par Shawn Pearce chez Google qui est écrit en Java, Servlet, GWT (Google Web Toolkit). La version stable de Gerrit est 2.12.2 et publiée le 11 mars 2016 sous licence Apache License v2 .

Pourquoi utiliser Gerrit?

Voici certaines raisons pour lesquelles vous devriez utiliser Gerrit.

  • Vous pouvez facilement trouver l'erreur dans le code source en utilisant Gerrit.

  • Vous pouvez travailler avec Gerrit, si vous avez un client Git régulier; pas besoin d'installer de client Gerrit.

  • Gerrit peut être utilisé comme intermédiaire entre les développeurs et les référentiels git.

Caractéristiques de Gerrit

  • Gerrit est un système de contrôle de version gratuit et open source de Git.

  • L'interface utilisateur de Gerrit est formée sur Google Web Toolkit .

  • C'est un cadre léger pour examiner chaque commit.

  • Gerrit agit comme un référentiel, ce qui permet de pousser le code et crée la révision pour votre commit.

Avantages de Gerrit

  • Gerrit fournit un contrôle d'accès pour les référentiels Git et l'interface Web pour la révision du code.

  • Vous pouvez pousser le code sans utiliser d'outils de ligne de commande supplémentaires.

  • Gerrit peut autoriser ou refuser l'autorisation au niveau du référentiel et jusqu'au niveau de la branche.

  • Gerrit est pris en charge par Eclipse.

Inconvénients de Gerrit

  • Examiner, vérifier et soumettre à nouveau les validations de code ralentit le temps de mise sur le marché.

  • Gerrit ne peut fonctionner qu'avec Git.

  • Gerrit est lent et il n'est pas possible de modifier l'ordre de tri dans lequel les modifications sont répertoriées.

  • Vous avez besoin des droits d'administrateur pour ajouter un référentiel sur Gerrit.

Avant de pouvoir utiliser Gerrit, vous devez installer Git et effectuer quelques modifications de configuration de base. Voici les étapes pour installer le client Git sur différentes plates-formes.

Installation de Git Client

Linux

Vous pouvez installer Git sur Linux à l'aide de l'outil de gestion des packages logiciels. Par exemple, si vous utilisez Fedora, vous pouvez utiliser comme -

sudo yum install git

Si vous utilisez une distribution basée sur Debian telle qu'Ubuntu, utilisez la commande suivante -

sudo apt-get install git

les fenêtres

Vous pouvez installer Git sur Windows en le téléchargeant depuis le site Web de Git. Allez simplement sur le lien msysgit.github.io et cliquez sur le bouton de téléchargement.

Mac

Git peut être installé sur Mac à l'aide de la commande suivante -

brew install git

Une autre façon d'installer Git est de le télécharger à partir du site Web de Git. Accédez simplement au lien Installer Git sur Mac , qui installera la plate-forme Git pour Mac.

Une fois que vous avez installé Git, vous devez personnaliser les variables de configuration pour ajouter vos informations personnelles. Vous pouvez obtenir et définir les variables de configuration en utilisant l'outil Git appelé git config avec l'option -l (cette option fournit la configuration actuelle).

git config -l

Lorsque vous exécutez la commande ci-dessus, vous obtiendrez les variables de configuration comme indiqué dans l'image suivante

Vous pouvez modifier les informations personnalisées à tout moment en utilisant à nouveau les commandes. Dans le chapitre suivant, vous apprendrez comment configurer le nom d'utilisateur et l'adresse e-mail de l'utilisateur à l'aide de la commande git config .

Vous pouvez suivre chaque validation en définissant des variables de nom et d' e - mail . La variable name spécifie le nom, tandis que la variable email identifie l'adresse e-mail associée aux commits Git. Vous pouvez les définir à l'aide des commandes suivantes -

git config --global user.email "[email protected]"
git config --global user.name "your_name"

Lorsque vous exécutez les commandes ci-dessus, vous obtiendrez le nom d'utilisateur et l'adresse e-mail comme indiqué dans l'image suivante.

SSH signifie Secure Shell ou parfois le protocole Secure Socket Shell utilisé pour accéder aux services réseau en toute sécurité à partir d'un ordinateur distant. Vous pouvez définir les clés SSH pour fournir une connexion fiable entre l'ordinateur et Gerrit.

Vous pouvez vérifier la clé SSH existante sur votre ordinateur local à l'aide de la commande suivante dans Git Bash -

$ ls ~/.ssh

Après avoir cliqué sur le bouton Entrée, vous verrez la clé SSH existante comme indiqué dans l'image suivante -

Si vous ne trouvez aucune clé SSH existante, vous devez créer une nouvelle clé SSH.

Générer une nouvelle clé SSH

Vous pouvez générer une nouvelle clé SSH pour l'authentification à l'aide de la commande suivante dans Git Bash -

$ ssh-keygen -t rsa -C "[email protected]"

Si vous avez déjà une clé SSH, ne générez pas de nouvelle clé, car elles seront écrasées. Vous pouvez utiliser la commande ssh-keygen , uniquement si vous avez installé Git avec Git Bash.

Lorsque vous exécutez la commande ci-dessus, elle créera 2 fichiers dans le répertoire ~ / .ssh .

  • ~/.ssh/id_rsa - Il s'agit d'une clé privée ou d'une clé d'identification.

  • ~/.ssh/id_rsa.pub - C'est une télévision publique.

Vous pouvez ajouter une clé SSH à l'agent ssh sur différentes plates-formes décrites plus loin.

Linux

Utilisez la commande suivante sur le système Linux pour ajouter une clé SSH

cat /home/<local-user>/.ssh/id_rsa.pub

les fenêtres

Ouvrez l'interface graphique GIT et accédez à Help → Show SSH Key comme indiqué dans l'image suivante.

Ensuite, cliquez sur le Copy To Clipboard pour copier la clé dans le presse-papiers.

Mac

Sous Mac OS X, vous pouvez copier le contenu de id_rsa.pub dans le presse-papiers à l'aide de la commande suivante.

$ pbcopy < ~/.ssh/id_rsa.pub

La clé SSH peut être ajoutée au compte Gerrit en suivant les étapes suivantes -

  • Step 1- Créez d'abord un compte sur les services wmflabs.org .

  • Step 3 - Ensuite, dans le coin supérieur droit, cliquez sur votre nom d'utilisateur et sélectionnez l'option Paramètres.

    Ici, nous avons créé un compte avec le nom John pour utiliser Gerrit

  • Step 4 - Cliquez sur l'option "Clés publiques SSH" dans le menu de gauche et collez la clé publique SSH dans le champ.

Vous pouvez ajouter une clé SSH à Git en utilisant les commandes suivantes -

  • Step 1 - Ouvrez Git Bash et récupérez l'agent ssh à l'aide de la commande suivante.

$ eval 'ssh-agent'
  • Step 2 - Ensuite, ajoutez la clé SSH au ssh-agent en utilisant la commande suivante

$ ssh-add ~/.ssh/id_rsa
  • Step 3 - Maintenant, exécutez le ssh à l'aide de la commande suivante, qui correspond à l'empreinte SSH utilisée lors de la première connexion.

$ ssh -p 29418 <user_name>@gerrit.wikimedia.org

Dans la capture d'écran ci-dessus, vous pouvez voir que xyz123 est un nom de compte shell d'instance, qui est utilisé lors de la création d'un compte Gerrit et Abc123 est un nom d'utilisateur de votre compte Gerrit.

Vous pouvez télécharger l'exemple en utilisant Git avec le code source de tout projet organisé à gerrit.wikimedia.org à l'aide de la commande Git Bash suivante.

$ git clone 
ssh://<user_name>@gerrit.wikimedia.org:29418/mediawiki/extensions/examples

La commande git clone clone un répertoire dans un nouveau répertoire; en d'autres termes, obtient une copie d'un référentiel existant . Lorsque vous exécutez la commande ci-dessus, vous obtiendrez une capture d'écran similaire à la suivante.

La commande ci-dessus clone le référentiel «exemples» et reçoit les objets, fichiers, etc. de ce référentiel et les stocke dans votre branche locale.

Vous pouvez travailler avec Gerrit en installant git-review sur différentes plates-formes, comme indiqué dans ce chapitre.

les fenêtres

Sous Windows, vous pouvez installer git-review comme indiqué dans les étapes suivantes.

Step 1- Installez d'abord Python pour installer git-review.

Step 2 - Conservez l'installation de Python dans le répertoire par défaut (comme C: \ Python27) au lieu de l'installer dans un autre répertoire.

Step 3 - Ensuite, définissez les variables d'environnement pour le répertoire des scripts Python en utilisant le chemin comme C:\Python27\;C:\Python27\Scripts\;

git_review_install

Step 4- Avec la version 2.7, Python installera pip automatiquement. Pour les anciennes versions de Python 2.7, vous pouvez installer pip comme décrit dans ce lien .

Step 5 - Lancez open Git Bash et installez git-review à l'aide de la commande suivante.

$ pip install git-review

Linux

Sous Linux, vous pouvez installer git-review comme décrit dans les étapes suivantes -

Step 1Les utilisateurs de la plate-forme Linux n'ont pas d'accès root sur l'hôte partagé. Par conséquent, sans accès root, vous pouvez installer git-review localement dans le répertoire utilisateur à l'aide des commandes suivantes -

virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review==1.21

Step 2 - Vous pouvez étendre le chemin vers les binaires locaux de deux manières -

PATH=$PATH:~/virtualenv/bin/
PATH=~/virtualenv/bin/:$PATH

Step 3 - Maintenant, utilisez la commande suivante pour configurer le travail avec Gerrit.

git review -s
 or
~/virtualenv/bin/git-review -s

Step 4 - Avec un accès root, git-review peut être installé à l'aide de la commande suivante.

sudo apt-get install git-review

Step 5- S'il n'y a pas d' apt-get après l'installation de Python, utilisez les commandes suivantes.

$ sudo easy_install pip
$ sudo pip install git-review==1.21

Step 6 - Exécutez la commande suivante pour travailler avec Gerrit.

git review -s

Mac OS X

Sous Mac, vous pouvez installer git-review en suivant les étapes suivantes.

Step 1- Installez le Homebrew à partir de ce lien.

Step 2 - Ensuite, installez git-review à l'aide de la commande suivante.

brew install git-review

Gerrit est construit sur le système de contrôle de version de Git, qui extrait le code d'un autre hôte, pousse les modifications au code, soumet le code pour examen, etc. Le nom distant par défaut de Git est origin et nous demandons à git-review de l'utiliser nom 'origine' à l'aide de la commande suivante.

$ git config --global gitreview.remote origin

Git-review peut être utilisé pour envoyer des branches git à Gerrit pour révision. Vous pouvez configurer gitreview à l'aide de la commande suivante dans le répertoire du projet.

$ git review -s

Git-review peut être utilisé comme outil de ligne de commande pour configurer le clone de Git, soumettre les branches à Gerrit, récupérer les fichiers existants, etc. Git-review recherche la télécommande nommée gerrit pour travailler avec Gerrit par défaut.

Si git-review trouve la télécommande Gerrit, il soumettra la branche à HEAD:refs/for/masterà l'emplacement distant et s'il n'y a pas d'accès distant Gerrit, alors git-review recherche le fichier .gitreview à la racine du référentiel avec les informations distantes de gerrit.

Git-review traite les éléments suivants en interne -

  • Il vérifiera si le référentiel distant fonctionne ou non pour soumettre les branches.

  • S'il n'y a pas d'accès à distance Gerrit, il demandera le nom d'utilisateur et tentera à nouveau d'accéder au référentiel.

  • Cela créera un accès distant appelé gerrit qui pointe vers Gerrit.

  • Il installera le hook commit-msg.

Vous pouvez mettre à jour la branche principale à l'aide de la commande suivante. La commande git-pull récupère depuis une autre branche locale ou s'intègre à un autre référentiel.

git pull origin master
  • La commande extraira les modifications de la télécommande d'origine (URL de la télécommande à récupérer), de la branche principale et fusionnera les modifications dans la branche locale extraite.

  • Le maître d'origine est une copie en cache du dernier extrait de l'origine.

  • Git pull est une combinaison de git fetch (récupère les nouveaux commits depuis le référentiel distant) et git merge (intègre de nouveaux commits dans la branche locale).

  • Git pull fusionne la branche locale avec la branche distante par défaut.

Vous pouvez créer une branche sur la machine locale à l'aide de la commande suivante.

$ git checkout -b name_of_branch origin/master

La commande ci-dessus crée une nouvelle branche comme indiqué dans la capture d'écran suivante.

Ici, nous avons utilisé branch123en tant que nouvelle succursale locale. Vous pouvez afficher la nouvelle branche du «maître» en utilisant la commande suivante.

$ git branch

La commande ci-dessus produit le résultat comme indiqué dans la capture d'écran suivante.

Git checkout navigue entre les branches, met à jour les fichiers dans le répertoire de travail et informe Git d'enregistrer les commits sur cette branche.

Lorsque vous modifiez le code dans le système de fichiers local, vous pouvez vérifier les modifications dans le répertoire à l'aide de la commande suivante.

$ git diff

Dans le répertoire du projet, nous modifierons certaines modifications dans le fichier appelé Example/Example.hooks.phpet exécutez la commande ci-dessus. Nous obtiendrons le résultat comme indiqué dans la capture d'écran suivante.

Vous pouvez vérifier les modifications apportées aux fichiers ou au répertoire à l'aide de la commande suivante.

$ git status

La commande ci-dessus permet de voir quels changements ont été mis en place, lesquels ne l'ont pas été et quels fichiers ne sont pas suivis par Git.

Ensuite, vous pouvez ajouter les modifications dans le répertoire de travail et mettre à jour le fichier lors de la prochaine validation à l'aide de la commande suivante.

$ git add Example/Example.hooks.php

Après avoir ajouté le fichier, exécutez à nouveau la commande git status pour examiner les modifications ajoutées à la zone de préparation, comme illustré dans la capture d'écran suivante.

Vous pouvez voir la différence entre l'index et votre dernière validation, ainsi que le contenu qui a été mis en scène, à l'aide de la commande suivante.

$ git diff --cached

Vous pouvez transmettre les modifications au répertoire distant à partir du référentiel local à l'aide de la commande suivante.

$ git commit

Lorsque vous exécutez la commande ci-dessus, il vous demandera d'ajouter le message de validation pour vos modifications. Ce message sera vu par d'autres personnes lorsque vous poussez le commit vers l'autre référentiel.

Ajoutez le message de validation et exécutez à nouveau la commande en tant que git commit , qui affichera le message de validation comme indiqué dans la capture d'écran suivante.

Vous devez examiner les modifications apportées à Gerrit avant de les fusionner dans le maître. Les modifications survenues dans le maître peuvent être synchronisées. Utilisez la commande suivante dans la branche sur laquelle vous avez travaillé.

$ git pull --rebase origin master
  • La commande ci-dessus récupérera les modifications ou les validations de la branche distante et rebasera les validations au-dessus du maître.

  • Lorsque vous avez terminé les modifications et que vous avez rebasé les commits, vous pouvez transmettre votre ensemble de modifications à Gerrit pour examen.

  • Git pull --rebase est souvent utilisé lorsque les modifications ne méritent pas une branche séparée.

  • Git pull est une combinaison de git fetch et git merge; où git pull --rebase est une combinaison de git fetch et git rebase.

Tout d'abord, exécutez la commande en tant que maître d'origine git pull comme indiqué dans la capture d'écran suivante.

Maintenant, utilisez la commande en tant que git rebase master pour rebaser les commits comme indiqué dans la capture d'écran suivante.

Vous pouvez soumettre les correctifs pour examen en utilisant le git-reviewcommander. L'ensemble de modifications peut être poussé vers Gerrit, en exécutant legit review -R comme indiqué dans la capture d'écran suivante.

le -R L'option informe git-review de ne pas terminer le rebase avant de soumettre les modifications de git à Gerrit.

Vous pouvez soumettre le code à une autre branche plutôt qu'au maître, à l'aide de la commande suivante.

git review name_of_branch

Il est également possible de soumettre le code à une autre télécommande, en utilisant la commande suivante.

git review -r name_of_remote

Les modifications peuvent être visualisées dans le tableau de bord Gerrit en cliquant sur ce lien .

Cliquez sur le lien du nom de l'auteur modifié et vous obtiendrez la capture d'écran suivante.

Cliquez sur le lien de diffusion pour voir les fichiers modifiés avec d'autres détails, comme indiqué dans la capture d'écran suivante.

Vous pouvez modifier le projet via l'interface Web après vous être connecté au compte Gerrit comme indiqué dans les étapes suivantes.

Step 1- Accédez au tableau de bord Gerrit en cliquant sur ce lien . Vous obtiendrez la capture d'écran suivante.

Step 2 - Cliquez ensuite sur le mediawiki/extensions/exampleslien spécifié sous la colonne Projet .

Step 3- Cliquez sur le lien Général dans la barre d'outils comme indiqué dans la capture d'écran suivante.

Step 4- Lorsque vous ouvrez le lien Général , il affichera une capture d'écran comme suit.

Step 5- Cliquez sur le bouton Créer un changement et il ouvrira une fenêtre contextuelle avec quelques détails, comme indiqué dans la capture d'écran suivante.

Step 6- Entrez les informations et cliquez sur le bouton Créer .

Après avoir créé le changement, il affichera les informations comme indiqué dans la capture d'écran suivante.

Step 7- Cliquez sur Modifier puis sur Ajouter . Sélectionnez maintenant le fichier que vous souhaitez modifier. Ici, nous avons sélectionné le fichierExample/i18n/en.json.

Lorsque vous ouvrez le fichier, il affichera les données json comme spécifié dans la capture d'écran suivante.

Step 8- Cliquez sur Enregistrer, puis sur le bouton Fermer .

Step 9- Cliquez enfin sur le bouton Publier pour publier le fichier édité

Step 10- Vous pouvez changer le message de validation en cliquant sur le Engagez lien message comme indiqué dans la capture d' écran ci - dessous.

Step 11- Appuyez sur e sur le clavier et ajoutez des informations supplémentaires, si vous souhaitez cliquer sur Enregistrer , puis sur le bouton Fermer .

La révision du code est une partie importante du flux de travail dans Gerrit. Le concept de base est que le code doit être revu avant d'être fusionné.

Le flux de travail du code pour MediaWiki peut être examiné avant de le fusionner et les extensions peuvent également être examinées, ce qui personnalise l'apparence et le fonctionnement de MediaWiki. Il existe un cas particulier dans lequel vous pouvez pousser les commits d' internationalisation et de localisation .

Vous pouvez pousser tous les commits vers une branche distante lorsque vous avez terminé le développement. Quelqu'un va récupérer les modifications dans local et fusionner ces modifications récupérées dans le maître local en créant un commit de fusion. Vous pouvez appliquer ces modifications àrefs/for/master.

Le propriétaire du projet signifie que le projet appartient à la personne mentionnée. Les propriétaires de projet sont un groupe virtuel dans lequel vous ne pouvez pas y ajouter de membres ou d'autres groupes. Le propriétaire du projet fournit des droits d'accès pour autoriser l'autorisation sur le projet à différents groupes.

Vous pouvez afficher les droits d'accès de votre projet en procédant comme suit.

Step 1- Ouvrez le tableau de bord Gerrit en cliquant sur ce lien .

Step 2- Cliquez sur l' option Projets → Liste . Recherchez le projet dans votre liste de projets et cliquez dessus comme indiqué dans la capture d'écran suivante.

Step 3- Lorsque vous ouvrez votre projet, cliquez sur l' option Accès comme indiqué dans la capture d'écran suivante.

Step 4- Cliquez sur l' option d' édition . Vous pouvez modifier les droits d'accès en cliquant sur le menu déroulant. Cliquez sur le bouton Enregistrer les modifications comme indiqué dans la capture d'écran suivante.

Tout le monde peut consulter le code et commenter le code dans Gerrit. Considérez les étapes suivantes -

Step 1 - Connectez-vous à Gerrit pour ouvrir le tableau de bord Gerrit comme spécifié dans le chapitre précédent.

Step 2 - Maintenant, cliquez sur n'importe quel sujet contenant le projet Gerrit, la branche, la date de mise à jour, etc. comme indiqué dans la capture d'écran suivante.

Step 3- Ensuite, il affichera un écran. Cliquez sur l' option Valider le message comme indiqué dans la capture d'écran suivante.

Les champs importants de l'ensemble de modifications sont tels que Réviseurs, Ajouter un réviseur, Côte à côte, etc. La comparaison des ensembles de correctifs comprend la sélection de l'ancienne liste d'historique des versions, le développement des détails des nouveaux ensembles de correctifs, etc. inclut le bouton d'abandon de changement, le bouton de soumission de patch, etc. qui ne sont pas présents dans la version actuelle de Gerrit.