[PATCH 0/5] submodule: add 'reversive' traversal options to foreach
- From
- William Hatfield <whatfield.git@gmail.com>
- Date
- Jan 31, 2026, 21:43 UTC
- Message-ID
- <20260131214309.1899376-1-whatfield.git@gmail.com>
This series introduces robust post-order (dependency-ordered) traversal to `git submodule foreach` through three new flags: `--reverse-traversal`, `--append-superproject`, and the shorthand `--reversive`. These options allow users to process nested submodules before their parents and include the superproject in the operation, enabling reliable automation for dependency-ordered cleanup, builds, and deployment workflows.
Highlights: - Implements all new traversal flags in both the C helper and shell script. - Provides a comprehensive test suite (t7425) that validates the new behaviors. - Updates documentation to describe the new options and their intended use.
These changes make submodule automation more powerful and flexible for advanced and dependency-sensitive use cases.
William Hatfield (5): t7425: add tests for reversive submodule traversal submodule: teach and plumb reverse-traversal behavior submodule: teach and plumb append-superproject behavior submodule: introduce reversive shorthand mode doc: document reversive traversal and related modes
Documentation/git-submodule.adoc | 20 ++ builtin/submodule--helper.c | 98 ++++++++-- git-submodule.sh | 13 ++ t/meson.build | 1 + t/t7425-submodule-reversion.sh | 314 +++++++++++++++++++++++++++++++ 5 files changed, 435 insertions(+), 11 deletions(-) create mode 100755 t/t7425-submodule-reversion.sh
-- 2.53.0-rc0