Dopo aver riscritto la cronologia di un repository con git filter-branch
, vengono modificati tutti gli SHA.Repository con i sottomoduli dopo la riscrittura della cronologia del sottomodulo
Ora, se quel repository (chiamiamolo X
) viene utilizzato come sottomodulo git in un altro repository (chiamiamolo Y
), abbiamo un problema.
Infatti, Y
sa quale versione del sottomodulo X
caricare in base allo SHA del commit in tale sottomodulo. Poiché tutti gli SHA in X
sono stati modificati, i punti Y
vengono convertiti in SHA che non esistono più.
C'è un modo per riscrivere la cronologia di Y
in modo che punti ai nuovi SHA di commit del sottomodulo X
(sia in commit correnti che passati)?
Immagino che data una corrispondenza tra vecchi SHA e nuovi, questo è possibile in linea di principio, ma temo che possa comportare brutti script di bash.
C'è qualcosa di più semplice?