[PATCH v3 00/20] object_id part 7
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Mar 31, 2017, 01:39 UTC
- Message-ID
- <20170331014001.953484-1-sandals@crustytoothpaste.net>
This is part 7 in the continuing transition to use struct object_id.
This series focuses on two main areas: adding two constants for the maximum hash size we'll be using (which will be suitable for allocating memory) and converting struct sha1_array to struct oid_array.
The rationale for adding separate constants for allocating memory is that with a new 256-bit hash function, we're going to need two different items: a constant for allocating memory that's as large as the largest hash, and a global variable telling us size the current hash is. I've opted to provide GIT_MAX_RAWSZ and GIT_MAX_HEXSZ for allocating memory, and leave GIT_SHA1_RAWSZ and GIT_SHA1_HEXSZ as values that can be later replaced by the aforementioned global.
Replacing struct sha1_array with struct oid_array necessarily involves converting the shallow code, so I did that. The structure now handles objects of struct object_id. While I renamed the documentation (since people will search for that), I chose not to rename the sha1-array.[ch] files or the test helper because I didn't think it was worth the hassle, especially for people who don't have rename support turned on by default.
I chose to use Coccinelle quite a bit in this series, as it automates a lot of the manual work and aides in review. There is also some use of Perl one-liners.
This series is available at https://github.com/bk2204/git under object-id-part7; it may be rebased.
Changes from v2: * Drop the patch that Junio has picked up separately. * Change one struct object_id * parameter from "sha1" to "oid". * Convert E2[E3].hash to E2[E3] instead of E2 + E3.
Changes from v1: * Rebase on current master (no changes). * Remove check for empty line in queue_command. * Add patch 6 to fix invalid pointer arithmetic.
brian m. carlson (20):
Define new hash-size constants for allocating memory
Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ
Convert GIT_SHA1_RAWSZ used for allocation to GIT_MAX_RAWSZ
builtin/diff: convert to struct object_id
builtin/pull: convert portions to struct object_id
builtin/receive-pack: convert portions to struct object_id
fsck: convert init_skiplist to struct object_id
parse-options-cb: convert sha1_array_append caller to struct object_id
test-sha1-array: convert most code to struct object_id
sha1_name: convert struct disambiguate_state to object_id
sha1_name: convert disambiguate_hint_fn to take object_id
submodule: convert check_for_new_submodule_commits to object_id
builtin/pull: convert to struct object_id
sha1-array: convert internal storage for struct sha1_array to
object_id
Make sha1_array_append take a struct object_id *
Convert remaining callers of sha1_array_lookup to object_id
Convert sha1_array_lookup to take struct object_id
Convert sha1_array_for_each_unique and for_each_abbrev to object_id
Rename sha1_array to oid_array
Documentation: update and rename api-sha1-array.txt .../{api-sha1-array.txt => api-oid-array.txt} | 44 +++----
bisect.c | 43 ++++---
builtin/blame.c | 4 +-
builtin/cat-file.c | 14 +--
builtin/diff.c | 40 +++---
builtin/fetch-pack.c | 2 +-
builtin/fetch.c | 6 +-
builtin/merge-index.c | 2 +-
builtin/merge.c | 2 +-
builtin/pack-objects.c | 24 ++--
builtin/patch-id.c | 2 +-
builtin/pull.c | 98 +++++++--------
builtin/receive-pack.c | 134 ++++++++++-----------
builtin/rev-list.c | 2 +-
builtin/rev-parse.c | 4 +-
builtin/send-pack.c | 4 +-
cache.h | 10 +-
combine-diff.c | 18 +--
commit.h | 14 +--
connect.c | 8 +-
diff.c | 4 +-
diff.h | 4 +-
fetch-pack.c | 32 ++---
fetch-pack.h | 4 +-
fsck.c | 17 +--
fsck.h | 2 +-
hex.c | 2 +-
parse-options-cb.c | 8 +-
patch-ids.c | 2 +-
patch-ids.h | 2 +-
ref-filter.c | 22 ++--
ref-filter.h | 2 +-
remote-curl.c | 4 +-
remote.h | 6 +-
send-pack.c | 6 +-
send-pack.h | 2 +-
sha1-array.c | 38 +++---
sha1-array.h | 20 +--
sha1_file.c | 6 +-
sha1_name.c | 94 ++++++++-------
shallow.c | 38 +++---
submodule.c | 66 +++++-----
submodule.h | 8 +-
t/helper/test-sha1-array.c | 20 +--
transport.c | 24 ++--
wt-status.h | 2 +-
46 files changed, 459 insertions(+), 451 deletions(-)
rename Documentation/technical/{api-sha1-array.txt => api-oid-array.txt} (61%)