versiones vcs subir studio proyecto para desde control conectar android git android-manifest android-source repository

vcs - ¿Cómo funciona el repositorio de Android para manifestar el trabajo del repositorio?



subir proyecto android studio a gitlab (3)

En la raíz del repositorio se encuentra un directorio oculto llamado ".repo", en su interior encontrará un proyecto de git llamado "manifiestos" que generalmente contiene un archivo llamado "default.xml". Este archivo contiene información sobre todos los proyectos y dónde se encuentran sus repositorios git asociados. Este archivo también está versionado, por lo tanto, cuando utiliza el comando "repo init -b XYZ", se revertirá y podrá volver a ramas anteriores que pueden haber agregado / eliminado proyectos de git en comparación con el encabezado.

Aquí hay un enlace al documento repo git repo que describe el formato del manifiesto:

https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.txt

La fuente de Android es una gran jerarquía de repositorios git . Son administrados por un script personalizado llamado repo . Repo determina qué repositorios git gestionar utilizando un archivo manifest.xml. El manifest.xml de Android está alojado en un repositorio git junto con todos los demás repositorios git.

¿Cómo se gestiona este repositorio en Android? Específicamente, ¿cómo se organizan las diferentes ramas y los diferentes archivos alojados en cada rama?



Primero, repo init crea el directorio .repo , clona el repositorio git https://android.googlesource.com/tools/repo a .repo/repo , y el repositorio git especificado con la opción -u a 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 a .repo/manifests.git . A continuación, verifica la rama especificada en -b y crea un enlace simbólico .repo/manifest.xml apunta al archivo especificado (opción -m ) en .repo/manifests , por defecto .repo/manifests/default.xml .

Aproximadamente de la siguiente manera:

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

Puedes rastrear lo que realmente sucede con repo --trace init ...

Luego, la sincronización de repositorio clona repositorios en .repo/projects para cada proyecto en manifest.xml y local_manifest.xml , crea directorios de trabajo con .git tiene enlaces simbólicos al repositorio desnudo correspondiente, verifica la rama especificada en el manifiesto y las actualizaciones .repo/project.list . El caso donde los proyectos ya están allí es ligeramente diferente, esencialmente realizando un git pull --rebase .