Merge branch 'sb/pull-rebase-submodule'
"git pull --rebase --recurse-submodules" learns to rebase the branch in the submodules to an updated base. * sb/pull-rebase-submodule: builtin/fetch cleanup: always set default value for submodule recursing pull: optionally rebase submodules (remote submodule changes only) builtin/fetch: parse recurse-submodules-default at default options parsing builtin/fetch: factor submodule recurse parsing out to submodule config
This commit is contained in:
26
submodule.c
26
submodule.c
@ -1138,6 +1138,32 @@ static void calculate_changed_submodule_paths(void)
|
||||
initialized_fetch_ref_tips = 0;
|
||||
}
|
||||
|
||||
int submodule_touches_in_range(struct object_id *excl_oid,
|
||||
struct object_id *incl_oid)
|
||||
{
|
||||
struct string_list subs = STRING_LIST_INIT_DUP;
|
||||
struct argv_array args = ARGV_ARRAY_INIT;
|
||||
int ret;
|
||||
|
||||
gitmodules_config();
|
||||
/* No need to check if there are no submodules configured */
|
||||
if (!submodule_from_path(NULL, NULL))
|
||||
return 0;
|
||||
|
||||
argv_array_push(&args, "--"); /* args[0] program name */
|
||||
argv_array_push(&args, oid_to_hex(incl_oid));
|
||||
argv_array_push(&args, "--not");
|
||||
argv_array_push(&args, oid_to_hex(excl_oid));
|
||||
|
||||
collect_changed_submodules(&subs, &args);
|
||||
ret = subs.nr;
|
||||
|
||||
argv_array_clear(&args);
|
||||
|
||||
free_submodules_oids(&subs);
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct submodule_parallel_fetch {
|
||||
int count;
|
||||
struct argv_array args;
|
||||
|
Reference in New Issue
Block a user