Gerrit/git-review/fr

git-review est un outil en mode ligne de commande pour Git /  permettant de soumettre une modification, ou de récupérer une modification existante.

Notez que Wikimedia Gerrit nécessite la version 1.27 ou supérieure de git-review.

La branche principale du projet est gérée par OpenStack. A ne pas confondre avec le projet Facebook qui est indépendant.

Installation

 * Voir aussi : tutoriel Gerrit

Après avoir installé Git (1, 2), créé un compte utilisateur Gerrit, créé une clé ssh (3, 4), et cloné le dépôt de votre projet (ou celui de l'exemple), vous êtes prêt à installer git-review, un outil pour travailler avec les dépôts Gerrit qui vous évite de mémoriser les commandes correspondantes. Suivez les instructions ci-dessous en fonction de votre système d'exploitation, et n'oubliez pas de le configurer ensuite !

Debian/Ubuntu/Mint
Les utilisateurs de Debian ou des distributions associées (telles que Ubuntu, Mint) sur un hôte partagé n'ont habituellement pas l'accès root. Si l'administrateur de votre site d'hébergement ne peut pas vous installer git-review, vous pouvez essayer de le faire localement. Allez à la section correspondante ci-dessous.

Avec un accès root
Vous pouvez faire :

ou :

Si vous ne disposez pas de easy_install, essayez :

Si vous n'avez pas  mais que   est installé, vous pouvez utiliser ceci (voir plus loin pour les instructions particulières pour OS X) :

Si vous avez Ubuntu 20.04, essayez :

Puis exécutez :

dans votre copie clonée, pour configurer votre environnement de travail Gerrit. On vous demandera probablement votre nom d'utilisateur pour la validation. L'accroche commit-msg sera ensuite automatiquement installée.

Sans accès root
Si vous êtes sur un hôte partagé et que votre système n'a pas git-review, vous pouvez l'installer localement dans votre répertoire utilisateur.

Si ceci est votre première installation locale, ou si vous ne l'avez pas encore fait, mettez à jour votre variable d'environnement PATH pour prendre en compte les binaires locaux. Il y a deux manières de faire cela. La manière la plus conservative :

laisse le système chercher d'abord parmi les répertoires des binaires, et ne consulte le répertoire local des binaires que si la commande n'a pas été trouvée auparavent. Si vous voulez que le logiciel installé localement dans votre répertoire home prévale sur les programmes du système, vous devez inverser l'ordre d'exploration.

Vous avez peut-être déja fait cela plus tôt. Vous pouvez ajouter la commande de votre choix à votre séquence de connexion pour qu'elle s'exécute automatiquement.

Si vous ne voulez pas modifier votre variable PATH vous n'y êtes pas obligé. Dans ce cas, vous ne pouvez pas utiliser la commande   mais utilisez   à la place.

Exécutez enfin :

ou

respectivement, dans votre copie clonée pour le configurer afin qu'il fonctionne avec Gerrit. On vous demandera probablement votre nom d'utilisateur pour la validation. L'accroche commit-msg sera ensuite automatiquement installée.

Fedora≤21/CentOS
Si pendant l'utilisation de git-review vous voyez, vous devrez installer   :

Il est possible que yum ne trouve pas le paquet git-review -- dans ce cas vous pouvez autoriser le répertoire EPEL et recommencer.

OpenSUSE
Installez (YaST) le, ensuite :



Depuis OpenSUSE 13.1, git-review se trouve dans le dépôt principal, vous pouvez donc utiliser :

Instable
Si vous utilisez la branche instable de nixpkgs, git-review est disponible en tant que paquet. Installez avec :

nix-env -i python2.7-git-review

Anciennes branches de nixpkgs
Installez python et pip :

nix-env -i -A pythonPackages.pip

Ajouter ~/.local/bin à votre chemin :

Installez git-review :

pip install git-review --user pip install --upgrade setuptools pip install --upgrade distribute

Installation avec l'installateur du paquet Python pip
Note: si  n'est pas installé mais que   l'est, vous pouvez également installer la dernière version de git-review en utilisant l'installateur de paquets Python. La commande exacte dépend de votre distribution, soit :

ou



Une fois  installé, vous pouvez utiliser :



FreeBSD
Vous pouvez directement installer git-review par les ports.

Windows
Il faut Python pour que git-review fonctionne et pip sert à l'installer :


 * Installez Python ou mettez à jour avec la version la plus récente de Python 2 ou Python 3.
 * Important: n'installez pas Python dans un dossier où il y a un espace dans l'expression du chemin car cela pose un problème dans pip (voir ), utilisez la valeur par défaut, c'est à dire
 * Durant l'installation de Python, sélectionnez manuellement « Add python.exe to Path » pour ajouter l'exécutable python à la variable d'environnement Path.
 * Sinon ajoutez vos répertoires de scripts Python manuellement parmi les chemins système (Menu&rarr;Paramètres&rarr;Panneau de contôle&rarr;Système&rarr;Paramètres système avancés&rarr;Variables d'environnement&rarr;Variables utilisateur&rarr;Path; par exemple ). Dans PATH, les différents répertoires sont séparés uniquement par un point-virgule   - n'ajoutez aucun espace à la liste des chemins.
 * Python 3.4 possède déjà pip installé. Seulement si vous avez une version plus ancienne, installez pip en suivant ces instructions.
 * Exécutez Git Bash en tant qu'administrateur (cliquez-droit sur l'icône pour voir cette option) et installez git-review à l'aide des commandes suivantes :
 * pip install git-review
 * Si vous avez des problèmes comme par exemple :
 * Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/git-review/
 * essayez d'exécuter :
 * pip install git-review --proxy=www-proxy-lon.uk.oracle.com:80
 * le proxy à utiliser exactement peut être extrait du fichier http://wpad/wpad.dat.


 * Pour utiliser, vous devez être dans un répertoire cloné de Git qui contient déjà un fichier de configuration   éventuellement caché (voir Configurer un dépôt pour Git distant)

Méthode 1 (Homebrew)
Fonctionne sous OS X 10.11 El Capitan et ultérieur (vérifié sous High Sierra 10.13.5) :


 * 1) Installer Homebrew
 * 2) Installer git-review avec

Méthode 2 (paquet Python de l'installateur pip)
Mac OS X est livré avec Python 2.7 (jusqu'à présent) mais sans les programmes d'installation pris en charge par Git et git-review.


 * 1) Ouvrez une fenêtre Terminal et placez-vous dans un répertoire pour y télécharger les paquets de test Git (par exemple Téléchargement)
 * 2) Téléchargez et installez l'installeur OS X pour Git (pour OS X 10.8 et antérieur uniquement; OS X 10.9 est livré avec Git préinstallé)
 * 3) Installez pip (déjà présent dans les versions plus anciennes de OS X) :
 * 4) Mettez à jour pip/setuptools (pour OS X 10.7 et antérieur uniquement)
 * 5) Installez git-review. Depuis la version « El Capitan », OS X protège les emplacements du système de fichiers y compris  , donc la méthode d'installation habituelle utilisant sudo va échouer. A la place, vous installerez git-review localement dans votre répertoire home de la manière suivante :
 * 1) Mettez à jour votre variable d'environnement PATH pour inclure le chemin vers git-review qui doit être dans

Si vous obtenez l'erreur, vous pouvez essayer de supprimer le Python préinstallé (/Library/Python/), en installant Python via homebrew , puis en réinstallant setuptools et git-review.

Si vous obtenez un message  après que l'installation ait à priori réussi, n'essayez pas de réinstaller par dessus l'existant, mais désinstallez git-review et refaites

Configurer git-review
Suivez les instructions du tutoriel Gerrit pour configurer git-review de sorte à ce qu'il utilise « origin » comme étant le distant par défaut. Ceci évite la confusion et les conflits entre des distants nommés gerrit et origin.

Après avoir cloné un dépôt, vous devez le paramètrer pour utiliser git-review. Ceci se fera automatiquement la première fois que vous essayerez de soumettre une validation, mais il est généralement mieux de le faire juste après avoir cloné.

On pourra vous demander votre nom d'utilisateur git, s'il diffère du nom de l'utilisateur du shell que vous utilisez.

En interne, voici ce qui se passe :


 * il vérifie si l'accès au dépôt distant est possible
 * si ce n'est pas le cas, il demande un nom d'utilisateur et renouvelle l'essai
 * il crée un distant appelé 'gerrit' qui pointe sur gerrit
 * il installe l'accroche commit-msg

Publier les modifications avec git-review
Soumettre des modifications avec git-review n'implique que très peu de commandes :

git checkout -b mycoolfeature change files git commit -a git review

Ce qui se passe quand vous publiez vos modifications
Lorsque vous soumettez une modification, git-review réalise les actions suivantes :


 * il cherche dans le fichier .gitreview la branche à pousser (production ou autre). S'il ne peut pas trouver cette information, il pousse sur le master.
 * il extrait le titre à attribuer à la révision (vous pouvez définir le sujet manuellement avec )
 * si vous soumettez à nouveau une modification téléchargée, il reprendra le titre de la modification originale
 * si le résumé de votre modification contient un numéro de bogue tel que, le titre sera
 * sinon, le titre sera le nom de votre branche locale
 * il fait un rebase de vos modifications sur la tête (HEAD) de la branche sur laquelle vous poussez (utilisez  pour sauter cette étape)
 * si vous soumettez plus d'une correction à la fois, ou si vous soumettez une modification basée sur une autre modification qui n'a pas été fusionnée, il vous sera demandé si vous voulez réellement faire cela (utilisez  pour sauter cette étape)
 * il pousse la modification pour relecture.

Télécharger une modification avec git-review
Lorsque vous téléchargez une modification à partir de gerrit pour la relire ou pour l'amender, git-review offre une alternative pour copier/coller une incantation magique à partir de l'interface utilisateur web Gerrit. Tout ce dont vous avez besoin, c'est le numéro de séquence de la modification dans Gerrit, que vous pouvez trouver dans l'URL :.

git review -d 2033

Ceci va télécharger la modification, la placer dans une branche appelée  (si la modification n'a pas d'étiquette, le numéro de séquence sera utilisé à la place) et qui deviendra la branche courante.

Après cela, vous pouvez amender la modification téléchargée afin de l'améliorer.

Résolution des problèmes
Pour les problèmes et la manière de les résoudre, voir Gerrit/Troubleshooting.

Sous Windows
Si cela ne fonctionne pas, il existe plusieurs possibilités. D'abord il faut utiliser scp (secure copy) à partir du répertoire local correspondant à chacun de vos dépôts, avant de valider les modifications à l'intérieur :

scp -P 29418 USERNAME@gerrit.wikimedia.org:hooks/commit-msg .git/hooks/commit-msg

Ensuite il faut essayer de patcher  pour que git-review fonctionne correctement :

Si vous utilisez Python 2.x et git-review 1.17 ou antérieur, utilisez  au lieu de.

Une autre erreur rencontrée sous Windows est :

...   (top_dir, git_dir) = git_directories ValueError: too many values to unpack (expected 2)

Une solution pour cela est de modifier la ligne retournée de  et d'utiliser les splitlines plutôt que la fonction normale split. Split recherche les espaces et génère cette erreur quand le chemin de votre répertoire de code source contient un espace. Splitlines recherche les caractères de passage à la ligne et ne produit pas cette erreur.

Voir aussi

 * Alternatives à git-review.
 * Git/aliases.
 * Git and Gerrit FAQ