This is another series in the continuing conversion to struct object_id. This series converts more of the builtin directory and some of the refs code to use struct object_id. Additionally, it implements an nth_packed_object_oid function which provides a struct object_id version of the nth_packed_object function, and a parse_oid_hex function that makes parsing easier. I'll be submitting the test I wrote as a separate patch, but I did build and test with it, so I feel confident that it works properly. Changes from v4: * Fix breakage in builtin/diff-tree pointed out by Peff. Changes from v3: * Move the parse_oid_hex patch earlier in the series. * Use parse_oid_hex in builtin/diff-tree.c. * Fix several warts with parse_oid_hex pointed out by Peff. Changes from v2: * Fix misnamed function in commit message. * Improve parameter name of parse_oid_hex. * Improve docstring of parse_oid_hex. * Remove needless variable. * Rebase on master. Changes from v1: * Implement parse_oid_hex and use it. * Make nth_packed_object_oid take a variable into which to store the object ID. This avoids concerns about unsafe casts. * Rebase on master. brian m. carlson (19): hex: introduce parse_oid_hex builtin/commit: convert to struct object_id builtin/diff-tree: convert to struct object_id builtin/describe: convert to struct object_id builtin/fast-export: convert to struct object_id builtin/fmt-merge-message: convert to struct object_id builtin/grep: convert to struct object_id builtin/branch: convert to struct object_id builtin/clone: convert to struct object_id builtin/merge: convert to struct object_id Convert remaining callers of resolve_refdup to object_id builtin/replace: convert to struct object_id reflog-walk: convert struct reflog_info to struct object_id refs: convert each_reflog_ent_fn to struct object_id refs: simplify parsing of reflog entries sha1_file: introduce an nth_packed_object_oid function Convert object iteration callbacks to struct object_id builtin/merge-base: convert to struct object_id wt-status: convert to struct object_id builtin/branch.c | 26 +++++----- builtin/cat-file.c | 8 +-- builtin/clone.c | 10 ++-- builtin/commit.c | 46 ++++++++--------- builtin/count-objects.c | 4 +- builtin/describe.c | 50 +++++++++--------- builtin/diff-tree.c | 61 +++++++++++----------- builtin/fast-export.c | 58 ++++++++++----------- builtin/fmt-merge-msg.c | 70 ++++++++++++------------- builtin/fsck.c | 40 +++++++-------- builtin/grep.c | 24 ++++----- builtin/merge-base.c | 30 +++++------ builtin/merge.c | 134 ++++++++++++++++++++++++------------------------ builtin/notes.c | 18 +++---- builtin/pack-objects.c | 6 +-- builtin/prune-packed.c | 4 +- builtin/prune.c | 8 +-- builtin/receive-pack.c | 4 +- builtin/reflog.c | 2 +- builtin/replace.c | 112 ++++++++++++++++++++-------------------- cache.h | 19 ++++++- hex.c | 8 +++ reachable.c | 30 +++++------ ref-filter.c | 4 +- reflog-walk.c | 26 +++++----- refs.c | 24 ++++----- refs.h | 2 +- refs/files-backend.c | 29 ++++++----- revision.c | 12 ++--- sha1_file.c | 27 +++++++--- sha1_name.c | 2 +- transport.c | 4 +- wt-status.c | 52 +++++++++---------- 33 files changed, 493 insertions(+), 461 deletions(-) -- 2.11.0