2017-09-21 2 views
0

J'ai créé un nouvel appareil mydevice/ sous $AOSP_ROOT/device/. J'essaie d'ajouter le git dans $AOSP_ROOT/.repo à des fins de suivi local, je l'ai trouvé extrêmement utile si je peux voir les changements lors de l'exécution d'un repo status ou repo diff. Ce sont les étapes que j'essayées:Ajout d'un nouveau git dans le repo AOSP

  1. effectuer git init au dossier mydevice, laissez les modifications non validées
  2. Ajouter le projet dans $AOSP_ROOT/.repo/manifest.xml

Malheureusement, quand je PERFORMs repo status mon projet ne se reflète pas dans la sortie . Qu'ai-je fait de mal?

Répondre

1

Disons que $HOME est /home/consy/ et $AOSP_ROOT est /home/consy/aosp/.

#init a local bare repo as the remote repo of `mydevice` 
cd $AOSP_ROOT/device/ 
git init mydevice 
git commit --allow-empty -m 'init repository' 
cd $HOME 
git clone $AOSP_ROOT/device --bare -- mydevice.git 
cd $AOSP_ROOT/device 
rm -rf mydevice 

#create .repo/local_manifests (this is a feature of repo) 
mkdir -p $AOSP_ROOT/.repo/local_manifests 

#create a manifest under `local_manifests`. 
#You can name it whatever you like except that the manifest's content should be like: 
<?xml version="1.0" encoding="UTF-8"?> 
<manifest> 
    <remote fetch="file:///home/consy/" name="this"/> 
    <default remote="this" revision="master"/> 
    <project name="mydevice" path="device/mydevice"/> 
</manifest> 

Maintenant lorsque vous exécutez repo sync, le projet (s) défini dans le manifeste locale seront ajoutés en $AOSP_ROOT que des projets supplémentaires. Vous pouvez utiliser des commandes repo telles que repo status pour manipuler ces projets supplémentaires. Le référentiel sera cloné à partir de /home/consy/mydevice.git et extrait à $AOSP_ROOT/device/mydevice. Après avoir effectué de nouveaux validations sous $AOSP_ROOT/device/mydevice, vous pouvez exécuter git push this <ref>:<ref> pour télécharger les validations vers /home/consy/mydevice.git. Plus tard, lorsque vous pensez qu'il est prêt à publier ce nouveau référentiel sur un hôte réel comme Github ou votre propre Gerrit, vous pouvez ajouter une nouvelle télécommande pointant vers Github ou Gerrit et passer à travers. Ajoutez ensuite la définition de projet <project name="mydevice" path="device/mydevice"/> dans le manifeste principal que vous utilisez lorsque repo init, validez la modification et poussez vers le référentiel de manifeste distant. Après cela, vous pouvez supprimer le manifeste local sous $AOSP_ROOT/.repo/local_manifests afin d'éviter une erreur de projet en double. En ce qui concerne la caractéristique de manifeste locale, voir Local Manifests à https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.txt.