Tengo un par de árboles que funcionan con algunas dependencias. Que yo sepa, submódulo git haría cumplir lo siguiente:alternativa del submódulo de Git?
- tienen una copia de cada árbol de trabajo (esclavo) en un subdirectorio de cada árbol de trabajo de usarlo (maestro)
- el repositorio maestro duplica toda la información de esclavos
No me importa que los repos se hagan más grandes, pero tener las copias es bastante inaceptable para mí. Me obligaría a reorganizar todos los proyectos, para que la copia se vincule. Además, la edición de un archivo incorrecto podría ocurrir fácilmente y generar confusión.
Tengo otra idea:
- Cada maestro almacena una lista de todos sus esclavos.
- No se requiere otra información en el máster.
- Con cada confirmación en el maestro, se crea un "snapshot-commit" en el esclavo.
- El "snapshot-commit" es una instantánea del estado actual del árbol de trabajo, ignora el estado actual del índice (ya estoy usando "snapshot-commits" antes de descartar algunos cambios sin compromiso).
- Los "snapshot-commits" se recopilan en una rama cuyo nombre se deriva del nombre del maestro. El mensaje de confirmación contiene el hash de la confirmación maestra. (En mi humilde opinión, esto es mejor que la inundación de miles de etiquetas.)
- Un pago y envío funciona como de costumbre, a menos que se requiera la recursión en esclavos.
El único problema que puedo ver son los siguientes:
- Las confirmaciones de los esclavos se acumulan, y nunca se eliminan incluso cuando el maestro se compromete ya no existe.
- Las confirmaciones en el maestro no son autosuficientes, podría eliminar una confirmación referida en el maestro. Pero no veo ninguna posibilidad de que pueda suceder por accidente, así que puedo vivir con eso.
- No me puedo imaginar cómo otros comandos de git podrían soportar esto. Pero de nuevo, puedo vivir con eso.
Pregunto si alguien ya lo implementó (o si es una mala idea).
¿Quiere decir que me equivoqué con mi oración "el depósito maestro duplica toda la información de los esclavos"? ? Esto es bastante posible, sin embargo, mi principal preocupación es la existencia de una copia de cada árbol esclavo en cada árbol maestro (¿o estoy equivocado de nuevo?). – maaartinus
@maaartinus: hay una copia física (ya que se comprueba una cierta diferencia), pero todo el padre repo guarda es una referencia a la confirmación comprobada. Ver "naturaleza verdadera de los submódulos" aquí: http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC
@maaartinus: Es verdad, sin embargo, que cada repositorio padre va a pagar el submódulo, lo que significa varias copias de dicho submódulo existirán en cualquier momento dado. – VonC