From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: git@vger.kernel.org
Cc: "Jeff King" <peff@peff.net>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>
Subject: [PATCH v2 00/21] object_id part 7
Date: Sun, 26 Mar 2017 16:01:22 +0000 [thread overview]
Message-ID: <20170326160143.769630-1-sandals@crustytoothpaste.net> (raw)
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.
There is also a patch for fixing some broken pointer arithmetic that was
discovered during review of v1. I don't think it's exploitable, but it
seems good to fix anyway. Additional eyes on this patch are welcomed.
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 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 (21):
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: fix incorrect pointer arithmetic
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 | 136 ++++++++++-----------
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, 460 insertions(+), 452 deletions(-)
rename Documentation/technical/{api-sha1-array.txt => api-oid-array.txt} (61%)
next reply other threads:[~2017-03-26 16:02 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-26 16:01 brian m. carlson [this message]
2017-03-26 16:01 ` [PATCH v2 01/21] Define new hash-size constants for allocating memory brian m. carlson
2017-03-26 16:01 ` [PATCH v2 02/21] Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ brian m. carlson
2017-03-26 16:01 ` [PATCH v2 03/21] Convert GIT_SHA1_RAWSZ used for allocation to GIT_MAX_RAWSZ brian m. carlson
2017-03-26 16:01 ` [PATCH v2 04/21] builtin/diff: convert to struct object_id brian m. carlson
2017-03-26 16:01 ` [PATCH v2 05/21] builtin/pull: convert portions " brian m. carlson
2017-03-26 16:01 ` [PATCH v2 06/21] builtin/receive-pack: fix incorrect pointer arithmetic brian m. carlson
2017-03-28 6:51 ` Jeff King
2017-03-28 16:58 ` Junio C Hamano
2017-03-26 16:01 ` [PATCH v2 07/21] builtin/receive-pack: convert portions to struct object_id brian m. carlson
2017-03-28 7:07 ` Jeff King
2017-03-29 23:21 ` brian m. carlson
2017-03-30 1:37 ` Jeff King
2017-03-26 16:01 ` [PATCH v2 08/21] fsck: convert init_skiplist " brian m. carlson
2017-03-26 16:01 ` [PATCH v2 09/21] parse-options-cb: convert sha1_array_append caller " brian m. carlson
2017-03-26 16:01 ` [PATCH v2 10/21] test-sha1-array: convert most code " brian m. carlson
2017-03-26 16:01 ` [PATCH v2 11/21] sha1_name: convert struct disambiguate_state to object_id brian m. carlson
2017-03-26 16:01 ` [PATCH v2 12/21] sha1_name: convert disambiguate_hint_fn to take object_id brian m. carlson
2017-03-26 16:01 ` [PATCH v2 13/21] submodule: convert check_for_new_submodule_commits to object_id brian m. carlson
2017-03-26 16:01 ` [PATCH v2 14/21] builtin/pull: convert to struct object_id brian m. carlson
2017-03-26 16:01 ` [PATCH v2 15/21] sha1-array: convert internal storage for struct sha1_array to object_id brian m. carlson
2017-03-28 7:24 ` Jeff King
2017-03-26 16:01 ` [PATCH v2 16/21] Make sha1_array_append take a struct object_id * brian m. carlson
2017-03-28 7:26 ` Jeff King
2017-03-28 17:27 ` Junio C Hamano
2017-03-29 0:06 ` brian m. carlson
2017-03-29 15:14 ` Junio C Hamano
2017-03-29 22:28 ` brian m. carlson
2017-03-26 16:01 ` [PATCH v2 17/21] Convert remaining callers of sha1_array_lookup to object_id brian m. carlson
2017-03-26 16:01 ` [PATCH v2 18/21] Convert sha1_array_lookup to take struct object_id brian m. carlson
2017-03-26 16:01 ` [PATCH v2 19/21] Convert sha1_array_for_each_unique and for_each_abbrev to object_id brian m. carlson
2017-03-26 16:01 ` [PATCH v2 20/21] Rename sha1_array to oid_array brian m. carlson
2017-03-26 16:01 ` [PATCH v2 21/21] Documentation: update and rename api-sha1-array.txt brian m. carlson
2017-03-28 7:31 ` [PATCH v2 00/21] object_id part 7 Jeff King
2017-03-28 11:13 ` brian m. carlson
2017-03-28 17:35 ` Jeff King
2017-03-28 17:42 ` Jeff King
2017-03-28 19:40 ` Junio C Hamano
2017-03-28 20:00 ` Jeff King
2017-03-28 17:32 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170326160143.769630-1-sandals@crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).