hash: provide per-algorithm null OIDs
authorbrian m. carlson <sandals@crustytoothpaste.net>
Mon, 26 Apr 2021 01:02:56 +0000 (01:02 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 27 Apr 2021 07:31:39 +0000 (16:31 +0900)
commit14228447c9ce664a4e9c31ba10344ec5e4ea4ba5
tree75e66ea8ad821e4684497a995d9648658c37fcbf
parent5a6dce70d7bb12ee2bc7926254c5b6741b91ac5f
hash: provide per-algorithm null OIDs

Up until recently, object IDs did not have an algorithm member, only a
hash.  Consequently, it was possible to share one null (all-zeros)
object ID among all hash algorithms.  Now that we're going to be
handling objects from multiple hash algorithms, it's important to make
sure that all object IDs have a correct algorithm field.

Introduce a per-algorithm null OID, and add it to struct hash_algo.
Introduce a wrapper function as well, and use it everywhere we used to
use the null_oid constant.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
42 files changed:
archive.c
blame.c
branch.c
builtin/checkout.c
builtin/clone.c
builtin/describe.c
builtin/diff.c
builtin/fast-export.c
builtin/grep.c
builtin/ls-files.c
builtin/rebase.c
builtin/receive-pack.c
builtin/submodule--helper.c
builtin/unpack-objects.c
builtin/worktree.c
combine-diff.c
connect.c
diff-lib.c
diff-no-index.c
diff.c
dir.c
grep.c
hash.h
log-tree.c
merge-ort.c
merge-recursive.c
notes-merge.c
notes.c
object-file.c
parse-options-cb.c
range-diff.c
refs.c
refs/debug.c
refs/files-backend.c
reset.c
sequencer.c
submodule-config.c
submodule.c
t/helper/test-submodule-nested-repo-config.c
tree-diff.c
wt-status.c
xdiff-interface.c