The motivation for this patchset is another series I'm working on, to make git-grep stop adding submodules' odbs to the alternates list. With that, parse_object() will have to be called with the subdmodules' struct repository. But it seemed that this function doesn't pass on the received repo to some inner calls, which, instead, always use the_repository. This series seeks to fix these inconsistencies. Note: I also tried to replace some uses of the_hash_algo with the struct git_hash_algo from the received repository, for consitency. (In practice, I'm not sure if this is very useful right now, but maybe it will be relevant for the change to SHA256?) Still, many functions in parse_object()'s call chain call oid_to_hex(), which uses the_hash_algo. Since changing this would require a much bigger operation, I decided to leave it as is, for now. Note II: Despite receiving a repo through the apply_state struct, apply.c:apply_binary() call functions which uses the_repository internally. Because of that, I used the_hash_algo in this function in patch 6. Should I change it to use apply_state->repo->hash_algo anyway? travis build: https://travis-ci.org/matheustavares/git/builds/644022000 Matheus Tavares (7): diff: make diff_populate_filespec() honor its repo argument cache-tree: use given repo's hash_algo at verify_one() pack-check: use given repo's hash_algo at verify_packfile() streaming: allow open_istream() to handle any repo sha1-file: pass git_hash_algo to write_object_file_prepare() sha1-file: pass git_hash_algo to hash_object_file() sha1-file: allow check_object_signature() to handle any repo apply.c | 6 +++-- archive-tar.c | 6 ++--- archive-zip.c | 3 ++- builtin/fast-export.c | 3 ++- builtin/index-pack.c | 10 +++++--- builtin/mktag.c | 7 +++-- builtin/pack-objects.c | 3 ++- builtin/replace.c | 3 ++- builtin/unpack-objects.c | 3 ++- cache-tree.c | 11 +++++--- cache.h | 3 ++- convert.c | 2 +- diff.c | 2 +- diffcore-rename.c | 4 +-- dir.c | 4 +-- log-tree.c | 3 ++- object-store.h | 5 ++-- object.c | 5 ++-- pack-check.c | 12 ++++----- sha1-file.c | 55 ++++++++++++++++++++++------------------ streaming.c | 28 ++++++++++---------- streaming.h | 4 ++- 22 files changed, 106 insertions(+), 76 deletions(-) -- 2.25.0