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.