再帰的な深さ優先git submodule foreach
コマンドを実行する堅牢な方法はありますか? foreach --recursive
幅優先であることを除いて、仕事をするコマンドを使用しています。次の構造がある場合、これは問題です。
- あ
- B
- ハ
そして、3つすべてにコミットがあり、aforeach --recursive add -A && git commit ...
はA、B、Cにヒットします。これは、その時点でスーパーモジュールにBのコミットをキャプチャさせたい場合に問題になります。
このディスカッションは 2008 年に見つかりましたが、提案された機能のいずれも、私が使用している Git の現在のバージョン (1.7.9.5) には含まれていないようです。
これを行うための小さな bash 関数を作成しました (省略形の命名をお許しください)。
function git-sfed() { git submodule foreach "git submodule foreach '$*' && $*"; }
そして、次の空想的なコマンドでテストするとうまくいくようです:
git-sfed 'python -c "import sys; print sys.argv" $path'
このコマンドは堅牢に見えますか、それとも他の一般的な既存の方法はありますか?