2012-02-01 6 views
18

Siento que entiendo muy bien git, pero cuando se trata del comando repo, me pierdo. He leído sobre el comando repo, pero todavía no estoy seguro de cómo lo une todo.Android comando de repositorio y cambio de ramas

Mi mayor pregunta es ¿puedo cambiar mis ramas actuales de pan de jengibre a ICS y posiblemente de nuevo?

veo el comando:

repo init -u https://android.googlesource.com/platform/manifest 

Desde mi entender, esto creará una cesión temporal con la rama principal. Si quiero especificar la rama, que puedo hacer:

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 

La descarga es de aproximadamente 8 GB, creo, así que no quiero tener que volar mi repo de distancia si comparten código. ¿Hay alguna manera de cambiar de sucursales en repos?

Respuesta

41

Si ejecuta repo init por segunda vez con una rama diferente, puede simplemente repo sync y no volverá a descargar todo el código fuente.

+0

Consulte https://groups.google.com/forum/#!topic/android-building/rtH5ZbJC7qU, tiene el mismo tema. – execve

4

El parámetro repo -b especifica la rama del repositorio .repo/manifiestats git que debe ser desprotegido. El archivo default.xml en este repositorio define en qué rama debe estar cada uno de los otros repositorios (proyectos) de git.

Parece que el repositorio está escrito de tal forma que si se echa un vistazo a otra rama de manifiesto se vuelve a sincronizar de nuevo, se volverá a extraer todo el código a través de la red.

Puede ejecutar repo forall -c 'git checkout branch_name' que buscará la rama especificada para todos los proyectos que están declarados en su manifiesto actual, pero si hay proyectos añadidos/eliminados entre gingerbread e ics (que existen), entonces no obtendrá el código para estos proyectos.

Ejecutando git checkout branchname en el repositorio .repo/manifiestos y ejecutando repo sync puede permitirle ahorrar un poco de sobrecarga de red.

De lo contrario, debido a las limitaciones del repositorio, la única manera real de hacerlo es mantener dos copias de trabajo del aosp o estar preparado para volver a sincronizar.

+2

Me di cuenta de que publicó esto hace unos meses, pero la parte sobre la fuente que se está descargando nuevamente ya no es precisa si lo fue. – gparent

Cuestiones relacionadas