This is a resend of [1] and was rebased to origin/master and all review comments have been addressed. Thanks, Stefan [1] https://public-inbox.org/git/20180808221752.195419-1-sbeller@xxxxxxxxxx/ Stefan Beller (11): string_list: print_string_list to use trace_printf string-list.h: add string_list_{pop, last} functions sha1-array: provide oid_array_filter submodule.c: convert submodule_move_head new argument to object id submodule.c: fix indentation submodule.c: sort changed_submodule_names before searching it submodule: move global changed_submodule_names into fetch submodule struct submodule.c: do not copy around submodule list submodule: fetch in submodules git directory instead of in worktree fetch: retry fetching submodules if sha1 were not fetched builtin/fetch: check for submodule updates for non branch fetches builtin/fetch.c | 14 +-- entry.c | 6 +- sha1-array.c | 18 ++++ sha1-array.h | 5 + string-list.c | 20 +++- string-list.h | 15 ++- submodule.c | 200 ++++++++++++++++++++++++++++-------- submodule.h | 2 +- t/t5526-fetch-submodules.sh | 23 ++++- unpack-trees.c | 13 +-- 10 files changed, 246 insertions(+), 70 deletions(-) -- 2.19.0.rc1.350.ge57e33dbd1-goog