Référence des commandes de référentiel

Repo complète Git en simplifiant le travail sur plusieurs référentiels. Voir Outils de contrôle Source pour une explication de la relation entre Repo et Git. Pour plus de détails sur Repo, voir le repo README .

L'utilisation du repo prend la forme suivante :

repo command options

Les éléments facultatifs sont indiqués entre parenthèses [ ]. Par exemple, de nombreuses commandes prennent project-list comme argument. Vous pouvez spécifier project-list comme une liste de noms ou une liste de chemins d' accès aux répertoires sources locales pour les projets:

repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]

aider

Cette page met simplement en évidence les options clés. Consultez l'aide de la ligne de commande pour plus de détails. Lorsque Repo est installé, vous pouvez trouver la dernière documentation en commençant par un résumé de toutes les commandes en exécutant :

repo help

Vous pouvez voir des informations détaillées sur n'importe quelle commande en l'exécutant dans une arborescence Repo :

repo help command

Par exemple, la commande suivante donne une description et la liste des options pour l' init argument de la prise en pension, initialisant prise en pension dans le répertoire courant. (Voir l' init pour plus de détails.)

repo help init

Ou pour voir uniquement la liste des options disponibles, exécutez :

repo command --help
Par exemple:
repo init --help

init

repo init -u url [options]

Installe Repo dans le répertoire courant. Cela crée un .repo/ répertoire avec les dépôts Git pour le code source et les fichiers Repo manifestes standard Android.

Options :

  • -u : Spécifiez une URL à partir de laquelle récupérer un dépôt manifeste. Le manifeste commun se trouve à https://android.googlesource.com/platform/manifest .
  • -m : Sélectionnez un fichier manifeste dans le référentiel. Si aucun nom manifeste est sélectionné, la valeur par défaut est default.xml .
  • -b : Spécifiez une révision, qui est un particulier manifest-branch .

Remarque: Pour toutes les commandes restantes Repo, le répertoire de travail actuel doit être soit le répertoire parent de .repo/ ou un sous - répertoire du répertoire parent.

synchronisation

repo sync [project-list]

Téléchargements et mises à jour de nouvelles modifications des fichiers de travail dans votre environnement local, essentiellement accomplir git fetch dans tous les dépôts Git. Si vous exécutez la repo sync sans arguments, il synchronise les fichiers pour tous les projets.

Lorsque vous exécutez la repo sync en repo sync , c'est ce qui se passe:

  • Si le projet n'a jamais été synchronisé, puis repo sync est équivalent à git clone . Toutes les branches du référentiel distant sont copiées dans le répertoire du projet local.

  • Si le projet a été synchronisé avant, puis la repo sync équivaut à:

    git remote update
    git rebase origin/branch
    

    où la branch est la branche check-out actuellement dans le répertoire local du projet. Si la branche locale ne suit pas une branche dans le référentiel distant, aucune synchronisation ne se produit pour le projet.

  • Si les résultats de l' opération Git rebasage dans les conflits de fusion, utilisez les commandes Git normales (par exemple, git rebase --continue ) pour résoudre les conflits.

Après une course réussie de repo sync , le code dans des projets spécifiques est à jour et synchronisé avec le code dans le dépôt distant.

Voici les principales options. Voir la repo help sync pour plus:

  • -c : Fetch seule la branche actuelle manifeste à partir du serveur.

  • -d : Changer de projets specifié à la révision manifeste. Ceci est utile si le projet est actuellement sur une branche thématique, mais que la révision du manifeste est temporairement nécessaire.

  • -f : Procéder à la synchronisation d' autres projets , même si un projet ne parvient pas à la synchronisation.

  • -j threadcount : Split la synchronisation entre les threads d'achèvement plus rapide. Assurez-vous de ne pas submerger votre machine - laissez une partie du processeur réservée à d'autres tâches. Pour voir le nombre de processeurs disponibles, la première course: nproc --all

  • -q : Exécuter tranquillement en supprimant les messages d'état.

  • -s : Sync pour une bonne construction connue comme spécifié par le manifest-server élément dans le manifeste de courant.

télécharger

repo upload [project-list]

Pour les projets spécifiés, Repo compare les branches locales aux branches distantes mises à jour lors de la dernière synchronisation Repo. Repo vous invite à sélectionner une ou plusieurs des branches qui n'ont pas été téléchargées pour examen.

Tous les commits sur les branches sélectionnées sont ensuite transmis à Gerrit via une connexion HTTPS. Vous devez configurer un mot de passe HTTPS pour activer l'autorisation de téléchargement. Visitez le Password Generator pour générer une nouvelle paire nom d' utilisateur / mot de passe pour utiliser le protocole HTTPS.

Lorsque Gerrit reçoit les données de l'objet sur son serveur, il transforme chaque validation en un changement afin que les réviseurs puissent commenter une validation spécifique. Pour combiner plusieurs points de contrôle commits en un seul commit, utilisez git rebase -i avant d'exécuter le téléchargement.

Si vous exécutez le repo upload sans arguments, il recherche tous les projets de modifications à télécharger.

Pour modifier les changements après qu'ils ont été mises en ligne, utilisez un outil comme git rebase -i ou git commit --amend mettre à jour vos commits locaux. Une fois vos modifications terminées :

  • Vérifiez que la branche mise à jour est la branche actuellement extraite.
  • Pour chaque commit de la série, saisissez l'ID de modification Gerrit entre parenthèses :
    # Replacing from branch foo
    [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
    [ 2829 ] ec18b4ba Update proto client to support patch set replacments
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.
    

Une fois le téléchargement terminé, les modifications ont un ensemble de correctifs supplémentaire.

Si vous voulez télécharger uniquement la vérification actuellement sur la branche Git, utilisez le drapeau --current-branch (ou --cbr pour faire court).

différence

repo diff [project-list]

Spectacles de changements en cours entre le commettras et l'arbre de travail en utilisant git diff .

Télécharger

repo download target change

Télécharge la modification spécifiée à partir du système de révision et la rend disponible dans le répertoire de travail local de votre projet.

Par exemple, pour télécharger le changement 23823 dans votre répertoire plate - forme / construction:

repo download platform/build 23823

L' exécution de repo sync supprime tout commits récupéré avec le repo download . Ou vous pouvez vérifier la branche à distance en utilisant git checkout m/master .

Note: Il y a des retards de réplication à tous les serveurs dans le monde entier, donc il y a un léger décalage entre le moment où la mise en miroir d' un changement est visible sur le web Gerrit et quand le repo download peut trouver le changement pour tous les utilisateurs.

pour tous

repo forall [project-list] -c command

Exécute la commande shell donnée dans chaque projet. Les variables d'environnement suivantes sont mises à disposition par repo forall :

  • REPO_PROJECT est réglé sur le nom unique du projet.

  • REPO_PATH est le chemin relatif à la racine du client.

  • REPO_REMOTE est le nom du système distant du manifeste.

  • REPO_LREV est le nom de la révision du manifeste, traduit à une branche de suivi local. Utilisez ceci si vous devez transmettre la révision du manifeste à une commande Git exécutée localement.

  • REPO_RREV est le nom de la révision du manifeste, exactement comme écrit dans le manifeste.

Options :

  • -c : Commande et arguments à exécuter. La commande est évaluée par /bin/sh et tout argument suivant sont passé à travers en tant que paramètres de position shell.

  • -p : les en- têtes Afficher du projet avant la sortie de la commande spécifiée. Ceci est réalisé en liant des canaux aux flux stdin, stdout et sterr de la commande, et en canalisant toutes les sorties dans un flux continu qui s'affiche dans une seule session de pager.

  • -v : Afficher la commande messages écrit à stderr.

prune

repo prune [project-list]

Supprime (supprime) les sujets déjà fusionnés.

début

repo start
branch-name [project-list]

Commence une nouvelle branche pour le développement, à partir de la révision spécifiée dans le manifeste.

Le BRANCH_NAME thèse fournit une brève description du changement que vous essayez de faire des projets. Si vous ne savez pas, pensez à utiliser le nom par default .

La project-list argument indique quels projets participent à cette branche de sujet.

Note: (.) Période A est un raccourci pour le projet dans le répertoire de travail courant.

statut

repo status [project-list]

Compare l'arborescence de travail à la zone de transit (index) et au commit le plus récent sur cette branche (HEAD) dans chaque projet spécifié. Affiche une ligne récapitulative pour chaque fichier où il existe une différence entre ces trois états.

Pour voir l'état de seulement la branche courante, exécutez repo status . . Les informations d'état sont répertoriées par projet. Pour chaque fichier du projet, un code à deux lettres est utilisé.

Dans la première colonne, une lettre majuscule indique en quoi la zone de transit diffère du dernier état validé.

Lettre Sens La description
- Pas de changement Idem dans HEAD et index
UNE Ajoutée Pas dans HEAD, dans index
M Modifié Dans HEAD, modifié dans l'index
Supprimé Dans HEAD, pas dans index
R Renommé Pas dans HEAD, chemin modifié dans l'index
C Copié Pas dans HEAD, copié d'un autre dans l'index
T Mode changé Même contenu dans HEAD et index, mode modifié
U Non fusionné Conflit entre HEAD et index ; résolution requise

Dans la deuxième colonne, une lettre minuscule indique en quoi le répertoire de travail diffère de l'index.

Lettre Sens La description
- Nouveau/inconnu Pas dans l'index, dans l'arbre de travail
m Modifié Dans l'index, dans l'arbre de travail, modifié
Supprimé Dans l'index, pas dans l'arbre de travail

Gestion des erreurs de pension

git reflog

repo start branch-name

git merge commit-id

repo upload .

L'erreur repo: error: no branches ready for upload de repo start repo: error: no branches ready for upload le repo: error: no branches ready for upload apparaît lorsque la commande repo start en repo start n'a pas été exécuté au début de la session. Pour récupérer, vous pouvez vérifier l'ID de validation, démarrer une nouvelle branche, puis la fusionner.