2009-09-27 7 views
5

Tengo un proyecto que combina varios repositorios de hg (diferentes componentes) para compilar una sola aplicación. Estoy buscando una herramienta multiplataforma para apoyar la realización de una operación en varios repositorios al mismo tiempo (por ejemplo, etiquetar, extraer, enviar, comprometer etc ...) Básicamente, estoy buscando el script 'repo' que Google escribí para Android, pero para hg en lugar de git:¿Alguien tiene un script para manejar múltiples repositorios de hg a la vez?

http://source.android.com/download/using-repo

he buscado en desbordamiento de pila y encontré esto:

mercurial windows batch file for pulling changes to multiple repositories

pero aún así es un manual de bits y únicas ventanas. Sé que no es que es difícil escribir el script para pasar un comando al repositorio o intentar encapsularlo todo, pero pensé que podría ser algo común, por lo que quizás otros ya tengan una solución. Supongo que un enfoque sería portar el script repo a hg (encontrar y reemplazar git con hg probablemente sería bastante lejos para operaciones simples).

¿Qué hacen las personas en esta situación?

Respuesta

5

Sin duda, observe la nueva función de subrepositorios (en la versión 1.3) en Mercurial. Le permite tener un repositorio general que contiene otros repositorios. El estado del nivel superior incluye un archivo que especifica el hash de la punta de los sub-repositorios, por lo que puede especificar con eficacia un único ID de nodo hash que abarque el estado de todos los repositorios subordinados.

https://www.mercurial-scm.org/wiki/subrepos

+0

Gracias, definitivamente lo vigilaré . No creo que todavía pueda reestructurar nuestros repositorios para usar una función "experimental", así que probablemente invertiré los 10 minutos en hackear juntos un script rápido. – Brian

+0

FWIW, los subrepos son un uso muy estándar ahora. –

1

he estado en un escenario similar para el año pasado, trabajando todos los días con una extensión de más de 6 proyecto repositorios, y siendo el responsable de la mayor parte de ramificación/fusión de material, etc.

En algún momento me encontré con un simple bash-script para verificar múltiples repositorios SVN. Lo adopté a Mercurial y lo he extendido con el tiempo. En este momento no puedo recordar ni buscar en Google la fuente original del guión, así que desafortunadamente no puedo acreditar al autor original (acreditaré en mi guión si encuentro la información más adelante).

Mi script "hgall" se publica en GitHub en https://github.com/JKrag/hgall

Está hecho para mi propio uso, y por lo tanto directamente hace referencia a unas pocas extensiones que he estado usando, pero esto se ha corregido fácilmente a cabo. (o simplemente no use los comandos que llaman a las extensiones que no ha instalado).

El script está documentado en el archivo README, incluido el "ajuste" personal de tenerlo (de forma predeterminada) ignorar los repositorios que comienzan con subrayado, ya que los utilizo como clones temporales para probar operaciones desordenadas (por ejemplo, grandes fusiones).

Espero que este script sea útil para algunos de ustedes, me ha sido de gran ayuda durante el último año. Nuestra compañía acaba de mudarse a Git, así que probablemente no haga muchas actualizaciones en el futuro cercano, pero posiblemente pueda portarlo a Git algún día ...

Cuestiones relacionadas