Git hook para actualizar el submódulo Git en el cambio de rama
Estoy trabajando con un código antiguo que hace uso de submódulos Git. El código tiene varias ramas divergentes que se utilizan activamente, y cada una de estas ramas depende de una revisión diferente de los submódulos relevantes; @esto ha hecho que el desarrollo sea extremadamente complicado. Uno de los problemas a los que me enfrento es que, cuando cambio entre ramas, p. @master
anewfeature-foo
utilizandogit checkout newfeature-foo
, el estado de los submódulos permanece en el demaster
, que a menudo causa errores de compilación y, lo que es peor, puede causar diferencias en el comportamiento del tiempo de ejecución que causa estragos en las pruebas del usuario y la cordura general.
Por ejemplo, dada la.gitmodules
configuración:
[submodule "robotcontroller"]
path = robotcontroller
url = https://coolrobots.com/repos/robotcontroller
branch = master
ignore = dirty
la ramamaster
en commit 77d4697 tiene una referencia arobotcontroller @ f57d1b3
la ramanewfeature-foo
a b38d29f tiene una referencia arobotcontroller @ 60b27d4
la ramamaster
a 873639f no tiene el submódulorobotcontroller
en absolutla ramanewfeature-foo
a 301dca4 tiene una referencia arobotcontroller @ bdf5991
No hay manera, p. usando ganchos Git para forzar el re-check completo automático de todos los submódulos listados en una.gitmodules
archivo cuando cambia al finalizar la compra del repositorio Git "raíz"?