En primer lugar, init repo crea el directorio .repo
, los clones del repositorio Git https://android.googlesource.com/tools/repo a .repo/repo
, y el repositorio Git especificado con la opción -u
en un repositorio vacío en .repo/manifests.git
. Después de eso, crea el directorio .repo/manifests
, lo convierte en un repositorio git mediante la creación de enlaces simbólicos desde .repo/manifests/.git
hasta .repo/manifests.git
. A continuación, verifica la rama especificada en -b
y crea un enlace simbólico .repo/manifest.xml
que apunta al archivo especificado (opción -m
) en .repo/manifests
, de forma predeterminada .repo/manifests/default.xml
.
aproximadamente como sigue:
repo init -u $URL -b $BRANCH -m $MANIFEST
--------------------
mkdir .repo; cd .repo
git clone https://android.googlesource.com/tools/repo
git clone --bare $URL manifests.git
mkdir -p manifests/.git; cd manifests/.git
for i in ../../manifests.git/*; do ln -s $ı .; done
cd ..
git checkout $BRANCH -- .
cd ..
ln -s manifests/$MANIFEST manifest.xml
se puede rastrear lo que realmente sucede con repo --trace init ...
Entonces, los repositorios de pase clones de sincronización a Git que .repo/projects
para cada proyecto en manifest.xml
y local_manifest.xml
, crea los directorios de trabajo con .git
tener enlaces simbólicos al repositorio desnudo correspondiente, verifica la rama especificada en el manifiesto y actualiza .repo/project.list
. El caso donde los proyectos ya están allí es ligeramente diferente, esencialmente realizando un git pull --rebase
.
enlace está roto. –