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
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.
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.
Está escrito en Python, no en bash. Tu "ps" también lo muestra. – claus
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.
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.
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
- 1. ¿Utiliza Qt y por qué lo usa?
- 2. ¿Qué es el/elemento? ¿Como lo uso? ¿Y por qué?
- 3. ObjectSpace: ¿qué es y cómo lo usa la gente?
- 4. ¿Qué es LiteralControl? ¿Por qué se usa?
- 5. ¿Por qué Google Analytics usa __utm.gif?
- 6. Marshalling: ¿qué es y por qué lo necesitamos?
- 7. ¿Qué es un "lote" y por qué se usa GO?
- 8. ¿Por qué Google usa JavaScript y CSS en línea?
- 9. lo que es Contexto Android y por qué es necesario
- 10. ¿Qué tecnologías usa Google Wave?
- 11. ¿De qué se trata la aopalliance? ¿Y por qué lo usa Guice?
- 12. ¿Por qué Android usa Java?
- 13. ¿Qué es ct100 y cómo lo cambio?
- 14. io_service, ¿por qué y cómo se usa?
- 15. ¿Qué es 'xmlhttp.setRequestHeader();' y en qué situaciones se usa?
- 16. ¿Por qué se usa gridview: true y qué significa?
- 17. ¿Qué es makeinfo y cómo lo obtengo?
- 18. MSBuild: ¿Qué es y cuándo lo necesito?
- 19. ¿Qué es SAPI y cuándo lo usarías?
- 20. ¿Qué CSS de restablecimiento de HTML5 usa y por qué?
- 21. ¿Qué es GenericParameterHelper y cómo se usa?
- 22. ¿por qué se usa osgi?
- 23. ¿Por qué se usa console.log? ¿Qué hace?
- 24. Repo 'repo' estado 'git' diciendo que la rama está por delante de origen/maestro. ¿Por qué?
- 25. ¿Por qué se usa suhosin?
- 26. ¿Por qué HTTP usa TCP?
- 27. ¿Qué es .inc y por qué usarlo?
- 28. ¿Por qué Heroku usa Postgresql?
- 29. Bloomfilter y Cassandra = ¿Por qué se usa y por qué hasheado varias veces?
- 30. ¿Por qué SortedList y List usan array y por qué LinkedList no se usa mucho?
http://source.android.com/source/developing.html: URL de correlación a partir de esta fecha de publicación – RichieHH
Reposo sin repagar Repo es una de las herramientas/scripts WORST con las que he trabajado alguna vez. .. – Emad
@eibrahim, ¿podrías explicarlo? (Estoy interesado en usar Repo para mi propio proyecto, me gustaría escuchar comentarios ...) – Zvika