push: teach --recurse-submodules the on-demand option
When using this option git will search for all submodules that have changed in the revisions to be send. It will then try to push the currently checked out branch of each submodule. This helps when a user has finished working on a change which involves submodules and just wants to push everything in one go. Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com> Mentored-by: Jens Lehmann <Jens.Lehmann@web.de> Mentored-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
a762e51ef2
commit
eb21c732d6
@ -224,13 +224,21 @@ static int option_parse_recurse_submodules(const struct option *opt,
|
||||
const char *arg, int unset)
|
||||
{
|
||||
int *flags = opt->value;
|
||||
|
||||
if (*flags & (TRANSPORT_RECURSE_SUBMODULES_CHECK |
|
||||
TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND))
|
||||
die("%s can only be used once.", opt->long_name);
|
||||
|
||||
if (arg) {
|
||||
if (!strcmp(arg, "check"))
|
||||
*flags |= TRANSPORT_RECURSE_SUBMODULES_CHECK;
|
||||
else if (!strcmp(arg, "on-demand"))
|
||||
*flags |= TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND;
|
||||
else
|
||||
die("bad %s argument: %s", opt->long_name, arg);
|
||||
} else
|
||||
die("option %s needs an argument (check)", opt->long_name);
|
||||
die("option %s needs an argument (check|on-demand)",
|
||||
opt->long_name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user