2010-03-15 11 views
27

Cuando quería obtener el código fuente de Android, sabía que tenía que usar "repo". Entonces, ¿qué es repo? ¿Por qué usan el repositorio y no solo usan GIT ?, y ¿hay una GUI para el repositorio que me permite pausar/reanudar la sincronización, porque cada vez que me desconecto ocasionalmente parece que el repositorio comienza a sincronizarse desde el principio!¿Qué es Repo y por qué lo usa Google?

Respuesta

19

Repo y GIT - qué son, para qué sirven - se explica en source.android.com

Para trabajar con el código de Android, tendrá que utilizar tanto Git y Repo.

Git es un sistema de control de versiones de código abierto diseñado para manejar grandes proyectos que se distribuida en múltiples repositorios . En el contexto de Android, utilizamos Git para las operaciones locales , como las ramificaciones locales, commits, diffs y ediciones.

Repo es una herramienta que hemos creado encima de Git. Repo nos ayuda a administrar el muchos repositorios Git, realiza las cargas en nuestro sistema de control de revisiones y automatiza partes del flujo de trabajo de desarrollo de Android . Repo es no destinado a reemplazar a Git, solo para hacer es más fácil trabajar con Git en el contexto de Android. El comando repo es un script ejecutable de Python que puede poner en cualquier lugar en su camino.

No hay GUI para Repo, por lo que puedo ver, pero hay un poco de orientación en el sitio anterior para controlar lo que Repo está haciendo desde la línea de comandos.

+2

http://source.android.com/source/developing.html: URL de correlación a partir de esta fecha de publicación – RichieHH

+3

Reposo sin repagar Repo es una de las herramientas/scripts WORST con las que he trabajado alguna vez. .. – Emad

+0

@eibrahim, ¿podrías explicarlo? (Estoy interesado en usar Repo para mi propio proyecto, me gustaría escuchar comentarios ...) – Zvika

2

Ir a:

http://source.android.com/source/git-repo.html

y se puede descargar el guión repo. Es un script de Python que usa el comando git para hacer una revisión del código fuente distribuido.

Después de haber ejecutado repo sync, hacer un ps -auwf para ver los procesos:

Por mí vi:

\_ python -E /sde3/root/download/android/android/.repo/repo/main.py --rep 
     \_ git fetch korg 
      \_ git fetch korg 
      \_ git index-pack --stdin -v --fix-thin --keep=fetch-pack 5227 on 

Sí, repo sync se rompe con frecuencia. Pero es robusto, solo reinicie el comando y reanudará la sincronización nuevamente: los que se han actualizado no se volverán a aplicar, por lo que saltará sobre ellos y continuará con el resto.

+0

Está escrito en Python, no en bash. Tu "ps" también lo muestra. – claus

3

En cuanto al punto de pausa y reinicio, mientras que en una ventana de terminal hace una sincronización de repos, puede presionar "ctrl + z" para pausar la sincronización de repositorio. Para reiniciar, simplemente escriba "fg" en la misma ventana.

14

Como se menciona en la página web de Android, repo no reemplaza git. Es solo una herramienta de más de git y te ayuda a administrar múltiples repositorios de git.

Por ejemplo, supongamos que tengo un proyecto grande que tiene muchas funciones y tengo varios equipos trabajando en cada característica y creé un repositorio para cada característica. Por ejemplo, supongamos que mis repositorios son wifi, telephony, power management, etc. Esta acción tiene sentido cuando sus características tienen diferentes ciclos de vida. Por ejemplo, si no tocaré la función wifi en mi próximo lanzamiento y modificaré todo el resto. Entonces, bajo este escenario, mi proyecto o producto se distribuye en varios repositorios de git diferentes.

lo tanto, para conseguir una foto de mi proyecto centralizado (un momento determinado de mi proyecto, por ejemplo, un hito), que necesito para obtener la revisión por almohadillas (GIT o etiqueta) de cada repositorio. Recuerde que tenemos un repositorio para cada característica. Manualmente podría hacerlo, pero podría ser muy doloroso. Por lo tanto, con el repositorio puede tener un MANIFEST que enlaza con todas las revisiones de cada repositorio de git (uno para cada característica) y tiene una imagen específica de todo mi proyecto.

Simplemente, podría decir que es una forma de gestionar repositorios git centralizados múltiples que están descentralizados.

Con el repositorio tienes más funciones, no solo para pagar en un punto específico. Para obtener más información, vaya al http://source.android.com/source/using-repo.html.

1

repo sync tiene varias opciones útiles:

-f se recupera de desconexiones

-c simplemente carga la rama que pidió

-j < #CPUS> acelera la sincronización mediante el aumento del número de cpus utilizado por el comando

Cuestiones relacionadas