Repo complète Git en simplifiant le travail sur plusieurs dépôts. Pour une de la relation entre Repo et Git, consultez Outils de contrôle des sources : Pour plus pour en savoir plus sur le dépôt, consultez la Fichier README du dépôt
L'utilisation du dépôt se présente sous la forme suivante:
repo command options
Les éléments facultatifs sont indiqués entre crochets []. Par exemple, de nombreuses commandes prennent project-list comme argument. Vous pouvez spécifier project-list sous forme de liste de noms ou de chemins d'accès aux répertoires sources locaux pour projets:
repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]
aide
repo help
Elle fournit de l'aide sur la commande repo
. Vous pouvez obtenir des informations détaillées
spécifique spécifiant une commande comme option:
repo help command
Par exemple, la commande suivante renvoie la description et la liste des options
pour la commande init
:
repo help init
Pour afficher uniquement la liste des options disponibles pour une commande, exécutez la commande suivante:
repo command --help
Par exemple:
repo init --help
init
repo init -u url [options]
Installe Repo dans le répertoire actuel. Cette commande crée un .repo/
avec des dépôts Git pour le code source du dépôt et le
fichiers manifestes Android standards.
Options :
-u
: spécifiez une URL à partir de laquelle récupérer un dépôt de fichiers manifestes. Le point commun le fichier manifeste se trouve à l'emplacementhttps://android.googlesource.com/platform/manifest
.-m
: sélectionnez un fichier manifeste dans le dépôt. Si aucun nom de fichier manifeste n'est sélectionnée, la valeur par défaut estdefault.xml
.-b
: spécifiez une révision, c'est-à-dire un manifest-branch spécifique.
Synchronisation
repo sync [project-list]
Il télécharge les nouvelles modifications et met à jour les fichiers de travail dans votre environnement local.
d'effectuer essentiellement git fetch
sur tous les dépôts Git. Si vous exécutez
repo sync
sans arguments, il synchronise les fichiers de tous les projets.
Voici ce qui se produit lorsque vous exécutez repo sync
:
Si le projet n'a jamais été synchronisé,
repo sync
équivaut àgit clone
; toutes les branches du dépôt distant sont copiées dans le répertoire du projet.Si le projet a déjà été synchronisé,
repo sync
équivaut à par:git remote update git rebase origin/branch
Où branch est la branche récupérée actuelle dans l'environnement local dans le répertoire du projet. Si la branche locale n'effectue pas le suivi d'une branche dans le bucket distant aucune synchronisation n'est effectuée pour le projet.
Après l'exécution réussie de repo sync
, le code des projets spécifiés est
à jour et synchronisés avec le code du dépôt distant.
Principales options:
-c
: extrait uniquement la branche de fichier manifeste actuelle sur le serveur.-d
: permet de rétablir la révision du fichier manifeste pour les projets spécifiés. Cette option est utile si le projet se trouve sur une branche "topic", mais que la révision du fichier manifeste est nécessaire temporairement.-f
: pour poursuivre la synchronisation d'autres projets, même si la synchronisation d'un projet échoue.threadcount
: répartissez la synchronisation entre les threads pour une réalisation plus rapide. Évitez de surcharger votre machine en laissant un peu de CPU pour d'autres tâches. Pour afficher le nombre de processeurs disponibles, exécutez d'abordnproc --all
-q
: s'exécute en mode silencieux en supprimant les messages d'état.-s
: se synchronise avec un build correct connu, tel que spécifié par l'élémentmanifest-server
. dans le fichier manifeste actuel.
Pour plus d'options, exécutez repo help sync
.
importation
repo upload [project-list]
Importe les modifications sur le serveur de vérification. Pour les projets spécifiés, Repo compare les branches locales vers les branches distantes mises à jour lors de la dernière synchronisation du dépôt. "Repo" vous invite à sélectionner une ou plusieurs des branches qui n'ont pas été mis en ligne pour examen.
Tous les commits effectués sur les branches sélectionnées sont ensuite transmis à Gerrit via Connexion HTTPS. Vous devez configurer un mot de passe HTTPS pour activer l'importation une autorisation. Pour générer une nouvelle paire nom d'utilisateur/mot de passe à utiliser sur HTTPS, consultez le Générateur de mots de passe.
Lorsque Gerrit reçoit les données de l'objet sur son serveur, il transforme chaque
s’engager dans un changement afin que les
évaluateurs puissent commenter un commit spécifique.
Pour combiner plusieurs commits de point de contrôle en un seul commit, utilisez git rebase -i
.
avant de lancer l'importation.
Si vous exécutez repo upload
sans arguments, elle recherche tous les projets
modifications à importer.
Pour modifier les modifications après les avoir importées, utilisez un outil tel que git rebase -i
ou
git commit --amend
pour mettre à jour vos commits locaux. Une fois vos modifications
terminer:
- Vérifiez que la branche mise à jour est bien la branche récupérée.
- Utilisez
repo upload --replace PROJECT
pour ouvrir l'éditeur de mise en correspondance des modifications. Pour chaque commit de la série, saisissez l'ID de modification Gerrit entre accolades:
# Replacing from branch foo [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific... [ 2829 ] ec18b4ba Update proto client to support patch set replacements # Insert change numbers in the brackets to add a new patch set. # To create a new change record, leave the brackets empty.
Une fois l'importation terminée, un ensemble de correctifs supplémentaire est appliqué aux modifications.
Si vous souhaitez importer uniquement la branche Git actuellement extraite, utilisez l'option
--current-branch
(ou --cbr
en abrégé).
diff.
repo diff [project-list]
Affiche les modifications en attente entre le commit et l'arborescence de travail à l'aide de
git diff
télécharger
repo download target change
Télécharge la modification spécifiée à partir du système de vérification et la rend disponible dans le répertoire de travail local de votre projet.
Par exemple, pour télécharger
remplacer 23823 par votre
Répertoire platform/build
:
repo download platform/build 23823
L'exécution de repo sync
supprime tous les commits récupérés avec repo download
. Ou vous
pouvez consulter la branche distante à l'aide de git checkout m/main
.
pour tous
repo forall [project-list] -c command
Exécute la commande shell donnée dans chaque projet. Les éléments supplémentaires suivants
les variables d'environnement sont mises à disposition par repo forall
:
REPO_PROJECT
est défini sur le nom unique du projet.REPO_PATH
est le chemin d'accès relatif à la racine du client.REPO_REMOTE
est le nom du système distant indiqué dans le fichier manifeste.REPO_LREV
est le nom de la révision du fichier manifeste, converti en local de suivi. Utilisez cette variable si vous devez transmettre le fichier manifeste à une commande Git exécutée localement.REPO_RREV
est le nom de la révision du fichier manifeste, tel qu'il est écrit. dans le fichier manifeste.
Options :
-c
: commande et arguments à exécuter La commande est évaluée via/bin/sh
et tous les arguments suivants sont transmis en tant que position du shell paramètres.-p
: affiche les en-têtes du projet avant le résultat de la commande spécifiée. C'est obtenue en liant des pipes aux flux stdin, stdout et sterr de la commande ; et acheminer toutes les sorties dans un flux continu qui s'affiche dans une seule pager. session.-v
: affiche les messages que la commande écrit dans stderr.
pruneaux
repo prune [project-list]
élimine (supprime) les sujets qui ont déjà été fusionnés.
départ
repo start branch-name [project-list]
Démarre une nouvelle branche pour le développement, à partir de la révision spécifiée dans le paramètre fichier manifeste.
L'argument BRANCH_NAME
fournit une brève description de la modification
vous essayez d'apporter
aux projets. Si vous ne le connaissez pas, vous pouvez utiliser le nom
default
L'argument project-list
spécifie les projets qui participent à ce sujet.
ou une autre branche.
état
repo status [project-list]
Compare l'arborescence de travail à la zone de préproduction (index) et au commit le plus récent sur cette branche (HEAD) dans chaque projet spécifié. Affiche une ligne de résumé pour chaque fichier où il y a une différence entre ces trois états.
Pour afficher uniquement l'état de la branche actuelle, exécutez repo status .
. État
les informations sont
répertoriées par projet. Pour chaque fichier du projet, un bloc
est utilisé.
Dans la première colonne, une lettre majuscule indique en quoi la zone intermédiaire diffère à partir du dernier état validé.
Lettre | Signification | Description |
---|---|---|
- | Aucun changement | Identiques dans HEAD et dans l'index |
A | Ajouté | Pas dans HEAD, dans l'index |
M | Modifié | Dans HEAD, modifié dans l'index |
D | Supprimé | Dans HEAD, pas dans l'index |
R | Renommée | Pas dans HEAD, chemin modifié dans l'index |
C | Copié | Pas dans la section HEAD, copiée depuis une autre dans l'index |
T | Mode modifié | Contenu identique dans les sections HEAD et index, mode modifié |
U | Fusion annulée | 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 du l'index.
Lettre | Signification | Description |
---|---|---|
- | Nouveau/inconnu | Pas dans l'index, dans l'arborescence professionnelle |
m | Modifié | Dans l'index, dans l'arborescence professionnelle, |
d | Supprimé | Dans l'index, pas dans l'arborescence professionnelle |
Gérer les erreurs de dépôt
git commit -a # Commit local changes first so they aren't lost. repo start branch-name # Start the branch git reset --hard HEAD@{1} # And reset the branch so that it matches the commit before repo start repo upload .
L'erreur repo: error: no branches ready for upload
apparaît lorsque la commande
repo start
n'a pas été exécuté au début de la session. Pour récupérer, vous pouvez vérifier
l'ID du commit, démarrez une nouvelle branche, puis fusionnez-la.