2011-11-21 19 views
6

Nuestra pequeña tienda de software migró recientemente de Subversion a Git, ya que los programadores encontraron que Git era mejor. La migración no fue sencilla, estamos teniendo problemas con la función de submódulos. Mi principal queja es que una vez que un repositorio contiene submódulos, simplemente no puede clonarlo y esperar que las cosas funcionen. Tienes que hacer un paso adicional para iniciar y descargar los submódulos. Tiradas posteriores deben update the submodules automatically, así que está bien. Pero cuando agrego un nuevo submódulo, presiono el comando commit y la gente tira, no obtienen el nuevo submódulo automáticamente, tienen que volver a git submodule update a mano, nuevamente.¿Cómo hacer que los submódulos de Git sean más fáciles para los no programadores?

Esto es tonto, ya que las personas no pueden simplemente extraer un repositorio con submódulos y esperar que se genere. ¿Es este entendimiento correcto? Los programadores pueden simplemente escribir un script o un alias para actualizar los submódulos después de recibir nuevos commits, pero para los no-programadores los submódulos son un problema. Me gustaría encontrar una solución que haga que el repositorio siempre funcione justo después de la clonación/extracción, independientemente del cliente de Git utilizado.

¿Cuáles son mis opciones?

+2

Es posible que desee utilizar el comando 'git clone --recursive' para el clon inicial, que se hará cargo de una parte de su pregunta. –

+0

Gracias, no sabía nada de '--recursive'. Pero nuestros no programadores usan un cliente GUI (actualmente GitBox), por lo que estoy buscando una solución diferente. Sería perfecto tener un soporte de primera clase para los submódulos en la GUI, pero no voy a contener la respiración. – zoul

+0

¿Está seguro de que la ruta de submódulo es la correcta? Se supone que los submódulos son módulos independientes, de modo que si las cosas se rompen sin ellos, entonces no es realmente autónomo. – bluesman

Respuesta

-1

Actualmente, el soporte del submódulo es mucho mejor, por lo que el problema casi no existe.

  • GitBox recibió un buen soporte para el submódulo.

  • SourceTree by Atlassian es un cliente gratuito de Git que agregó el soporte de submódulos en 1.3. Hubo a small glitch en el manejo de submódulos en 1.3.1, pero por lo demás el cliente parece cubrir todos los casos de uso de submódulos que yo quería, es decir, hace que los submódulos sean prácticamente transparentes para los no programadores.

  • Git Tower también parece support submodules muy bien desde 1.4.

+2

Tenga en cuenta que ambas herramientas solo están disponibles para Mac – Yogu

+2

Y ninguna de ellas parece ser de código abierto. – firegurafiku

0

Recomendaría git-slave si planea utilizar muchos submódulos, especialmente si va a hacer referencia a "bibliotecas comunes". Aunque, los submódulos básicos no son tan difíciles de acelerar si se concentran en un par de horas con algunos experimentos para pasar por un conjunto de escenarios.

También recomendaría que algún servidor de CI haga compilaciones para usted. Capturará todos los submódulos necesarios. Puede hacer que todos los artefactos (usted decida lo que desea) estén disponibles a través de un archivo zip descargable. Uso TeamCity y esta es una gran manera de exponer todo sin necesidad de usar ningún VCS.

+0

Gracias, no conocía a Git Slave. Me temo que no funcionará con los clientes gráficos de Git, que es imprescindible para nosotros (y también tiene el costo de agregar una solución de terceros a la mezcla). Pensé en un servidor de CI y eventualmente podríamos llegar allí, ya que maneja un gran porcentaje de los casos de uso.Pero los que no son programadores todavía necesitan un acceso de primera clase al repositorio usando un cliente GUI, así que necesito abordar esto. El taller de CLI + Git no es una opción, desafortunadamente. – zoul

+0

Es de esperar que pronto veamos una vista basada en la GUI sensible en los submódulos. –

Cuestiones relacionadas