[PATCH 0/4] implement branch --recurse-submodules
- From
Glen Choo <chooglen@google.com>
- Date
- Nov 22, 2021, 22:32 UTC
- Message-ID
- <20211122223252.19922-1-chooglen@google.com>
Submodule branching RFC: https://lore.kernel.org/git/kl6lv912uvjv.fsf@chooglen-macbookpro.roam.corp.google.com/
Original Submodule UX RFC/Discussion: https://lore.kernel.org/git/YHofmWcIAidkvJiD@google.com/
Contributor Summit submodules Notes: https://lore.kernel.org/git/nycvar.QRO.7.76.6.2110211148060.56@tvgsbejvaqbjf.bet/
Submodule UX overhaul updates: https://lore.kernel.org/git/?q=Submodule+UX+overhaul+update
This series implements branch --recurse-submodules as laid out in the Submodule branching RFC (linked above). If there are concerns about the UX/behavior, I would appreciate feedback on the RFC thread as well :)
This series uses child processes to support submodules. I initially hoped to do this in-core and [1] and [2] were meant to prepare for that. But even though in-core is tantalizingly close, [1] showed that there is more work to be done on config.c before this is possible, and I would like to get more feedback on the UX before converting this to in-core.
[1] https://lore.kernel.org/git/20211111171643.13805-1-chooglen@google.com/ [2] https://lore.kernel.org/git/20211118005325.64971-1-chooglen@google.com/
Glen Choo (4): submodule-config: add submodules_of_tree() helper branch: refactor out branch validation from create_branch() branch: add --dry-run option to branch branch: add --recurse-submodules option for branch creation
Documentation/config/advice.txt | 3 + Documentation/config/submodule.txt | 9 + Documentation/git-branch.txt | 8 +- advice.c | 1 + advice.h | 1 + branch.c | 300 +++++++++++++++++++++-------- branch.h | 41 +++- builtin/branch.c | 77 ++++++-- builtin/submodule--helper.c | 33 ++++ submodule-config.c | 19 ++ submodule-config.h | 13 ++ t/t3200-branch.sh | 30 +++ t/t3207-branch-submodule.sh | 249 ++++++++++++++++++++++++ 13 files changed, 678 insertions(+), 106 deletions(-) create mode 100755 t/t3207-branch-submodule.sh
-- 2.33.GIT