v3: * reordered patches to have Jonathans patch before submodule_free * addressed Jonathans comments on patch 5. * rebased on origin/sb/object-store to resolve a visibility conflict about repo_init being exposed outside of repository.c v2: * addressed memleaks and messy code in patch 5 * removed the extern keyword where applicable * extended the commit message, stating we want to rename submodule_free in the future. * picked up Jonathans patch and added it as a nice finish of the series. I did not see the need or aesthetic desire to put that patch earlier in the series. Thanks, Stefan v1: This fixes the bug reported in [1] ("Bug: moving submodules that have submodules inside them causes a fatal error in git status") [1] https://public-inbox.org/git/20180306192017.GA5797@xxxxxxxxxx/ Thanks, Stefan Jonathan Tan (1): grep: remove "repo" arg from non-supporting funcs Stefan Beller (5): submodule.h: drop declaration of connect_work_tree_and_git_dir submodule-config: allow submodule_free to handle arbitrary repositories submodule-config: add repository argument to submodule_from_{name, path} submodule-config: remove submodule_from_cache submodule: fixup nested submodules after moving the submodule .../technical/api-submodule-config.txt | 2 +- builtin/grep.c | 14 ++--- builtin/mv.c | 6 +- builtin/submodule--helper.c | 17 +++--- dir.c | 60 ++++++++++++++++++- dir.h | 12 +++- repository.c | 8 +-- repository.h | 3 + submodule-config.c | 29 ++++----- submodule-config.h | 15 +++-- submodule.c | 40 +++++++------ submodule.h | 1 - t/helper/test-submodule-config.c | 8 ++- t/t7001-mv.sh | 2 +- unpack-trees.c | 2 +- 15 files changed, 140 insertions(+), 79 deletions(-) -- 2.17.0.rc1.321.gba9d0f2565-goog