Il nostro processo per git è un'unione periodica fino al nostro ramo principale in modo che le modifiche possano essere unite alle nostre ultime funzioni. Dal momento che gli ultimi round di fusione da un ramo all'altro, ci imbattiamo in un problema in cui la soluzione non è chiara.Perché i commit non seguono l'errore merge-base?
Abbiamo un repository che contiene 19 sottomoduli al suo interno. Quando facciamo la fusione di tutti i sottomoduli, vediamo quello che crediamo sia l'output atteso che ci dice che i file sono modificati, conflitti, ecc. Quindi quando arriveremo all'unione del repository "root", tutto andrà a sud e vediamo alcuni del seguente output (modificato per indicare solo i problemi).
warning: Failed to merge submodule projects/foo1 (commits don't follow merge-base)
warning: Failed to merge submodule projects/foo2 (commits don't follow merge-base)
warning: Failed to merge submodule projects/foo3 (not fast-forward)
Found a possible merge resolution for the submodule:
931a61165f3b2079523a122477fa5f44c123406d: Comment of last merge
If this is correct simply add it to the index for example by using:
git update-index --cacheinfo 160000 931a61165f3b2079523a122477fa5f44c123406d "projects/foo3"
which will accept this suggestion.
Ora, siamo in grado di eseguire il comando di git update-index
suggerito. Sarà felice per quel sottomodulo, ma non abbiamo mai dovuto farlo prima. Il problema è davvero pessimo quando si guardano i sottomoduli foo1 e foo2 in cui non viene visualizzato alcun aiuto.
Per ogni modifica dei sottomoduli, hai anche commesso e spinto il repository padre? – VonC
Prima della fusione, entrambi gli alberi sono completamente funzionanti senza alcun problema di mancato commit in alcun sottomodulo. È questo che vuoi dire? – Peter
Intendo dire che, quando si modifica un sottomodulo, è necessario eseguire il commit e il push, quindi passare al genitore, al commit e al push (poiché lo SHA1 del sottomodulo è stato modificato). Mi stavo chiedendo se hai apportato qualche modifica a quei sottomoduli (e se sì, se hai seguito la sequenza commit-push), prima di tentare di unire il repository padre. – VonC