サブモジュールを含むプロジェクトの CI ビルドの場合、作業ツリーが中央リポジトリに送信された状態と正確に一致することを確認したいと考えています。
スーパープロジェクトのリビジョンを取得してチェックアウトした後、次の手順を実行してサブモジュールを更新します。
git submodule foreach 'git reset --hard && git clean -xdf'
git submodule update --init
これは、中央リポジトリでサブモジュールが削除された場合を除いて、すべてのケースで機能するようです。この場合、ジョブの作業コピーには、削除されたサブモジュールがまだ含まれています。
また、スーパープロジェクトの agit clean -xdf
は、古いサブモジュールに触れていないようです。
では、古いローカル サブモジュールを自動的に検出して削除することは可能ですか?