> > @@ -1827,7 +1829,7 @@ static int git_config_from_blob_ref(config_fn_t fn, > > > > if (get_oid(name, &oid) < 0) > > This should be `repo_get_oid(repo, ...)` now. Ah, good catch! This wasn't caught by the tests because the submodule config mechanism always passes a full-length hexadecimal string hash as "name" - and probably would never be caught because git_config_from_blob_ref() is only called from config_with_options(), which is called with non-NULL source from only 2 files: submodule-config.c (this one) and builtin/config.c (which most likely will never operate on any repo other than the_repository). I'll refactor the API to avoid this situation in the first place.