]> git.ipfire.org Git - thirdparty/git.git/commit - submodule.c
Doc: document push.recurseSubmodules=only
authorJonathan Tan <jonathantanmy@google.com>
Mon, 14 Nov 2022 21:37:12 +0000 (13:37 -0800)
committerTaylor Blau <me@ttaylorr.com>
Mon, 14 Nov 2022 21:55:50 +0000 (16:55 -0500)
commite62f779ae67ce3babe9e4ee934469993a5e6df49
tree25c20d7d74ee6515f0a180edfa9ea3c867b38146
parent3b08839926fcc7cc48cf4c759737c1a71af430c1
Doc: document push.recurseSubmodules=only

Git learned pushing submodules without pushing the superproject by
the user specifying --recurse-submodules=only through 6c656c3fe4
("submodules: add RECURSE_SUBMODULES_ONLY value", 2016-12-20) and
225e8bf778 ("push: add option to push only submodules", 2016-12-20).
For users who use this feature regularly, it is desirable to have an
equivalent configuration.

It turns out that such a configuration (push.recurseSubmodules=only) is
already supported, even though it is neither documented nor mentioned
in the commit messages, due to the way the --recurse-submodules=only
feature was implemented (a function used to parse --recurse-submodules
was updated to support "only", but that same function is used to parse
push.recurseSubmodules too). What is left is to document it and test it,
which is what this commit does.

There is a possible point of confusion when recursing into a submodule
that itself has the push.recurseSubmodules=only configuration, because
if a repository has only its submodules pushed and not itself, its
superproject can never be pushed. Therefore, treat such configurations
as being "on-demand", and print a warning message.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Documentation/config/push.txt
Documentation/git-push.txt
builtin/push.c
submodule.c
t/t5531-deep-submodule-push.sh