Esiste un modo efficace per eseguire un comando di profondità ricorsivo prima git submodule foreach
? Sto usando il comando foreach --recursive
che esegue il lavoro, tranne che per la larghezza. Questo è un problema perché se ho la seguente struttura:sottomodulo git foreach - Un modo efficace per eseguire in modo ricorsivo il commit di un modulo figlio?
- Un
- B
- C
E devo impegna in tutti e tre, una foreach --recursive add -A && git commit ...
ha colpito una , B, C, che è problematico se voglio che il supermodulo acquisisca i commit di B in quel momento.
Ho trovato this discussion dal 2008, ma non sembra che nessuna delle funzioni suggerite sia nella versione corrente di Git che ho (1.7.9.5).
ho scritto una piccola funzione bash per fare questo (scusate il denominazione abbreviata):
function git-sfed() { git submodule foreach "git submodule foreach '$*' && $*"; }
E provandola con il seguente comando fantasiosa sembra funzionare:
git-sfed 'python -c "import sys; print sys.argv" $path'
Questo comando sembra robusto, o ci sono altri metodi comuni esistenti?
Nota: alcuni comandi ora sono a conoscenza del sottomodulo: ad esempio, 'git grep -e" bar "--recurse-submodules' è disponibile con Git 2.12: http://stackoverflow.com/a/41788645/6309 – VonC