git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH v3 00/20] object_id part 7
@ 2017-03-31  1:39 brian m. carlson
  2017-03-31  1:39 ` [PATCH v3 01/20] Define new hash-size constants for allocating memory brian m. carlson
                   ` (20 more replies)
  0 siblings, 21 replies; 24+ messages in thread
From: brian m. carlson @ 2017-03-31  1:39 UTC (permalink / raw)
  To: git; +Cc: Jeff King, Nguyễn Thái Ngọc Duy, Junio C Hamano

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%)


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2017-07-15 18:34 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-31  1:39 [PATCH v3 00/20] object_id part 7 brian m. carlson
2017-03-31  1:39 ` [PATCH v3 01/20] Define new hash-size constants for allocating memory brian m. carlson
2017-03-31  1:39 ` [PATCH v3 02/20] Convert GIT_SHA1_HEXSZ used for allocation to GIT_MAX_HEXSZ brian m. carlson
2017-03-31  1:39 ` [PATCH v3 03/20] Convert GIT_SHA1_RAWSZ used for allocation to GIT_MAX_RAWSZ brian m. carlson
2017-03-31  1:39 ` [PATCH v3 04/20] builtin/diff: convert to struct object_id brian m. carlson
2017-03-31  1:39 ` [PATCH v3 05/20] builtin/pull: convert portions " brian m. carlson
2017-03-31  1:39 ` [PATCH v3 06/20] builtin/receive-pack: " brian m. carlson
2017-07-15 18:33   ` René Scharfe
2017-03-31  1:39 ` [PATCH v3 07/20] fsck: convert init_skiplist " brian m. carlson
2017-03-31  1:39 ` [PATCH v3 08/20] parse-options-cb: convert sha1_array_append caller " brian m. carlson
2017-03-31  1:39 ` [PATCH v3 09/20] test-sha1-array: convert most code " brian m. carlson
2017-03-31  1:39 ` [PATCH v3 10/20] sha1_name: convert struct disambiguate_state to object_id brian m. carlson
2017-03-31  1:39 ` [PATCH v3 11/20] sha1_name: convert disambiguate_hint_fn to take object_id brian m. carlson
2017-03-31  1:39 ` [PATCH v3 12/20] submodule: convert check_for_new_submodule_commits to object_id brian m. carlson
2017-03-31  1:39 ` [PATCH v3 13/20] builtin/pull: convert to struct object_id brian m. carlson
2017-03-31  1:39 ` [PATCH v3 14/20] sha1-array: convert internal storage for struct sha1_array to object_id brian m. carlson
2017-03-31 15:42   ` Junio C Hamano
2017-03-31  1:39 ` [PATCH v3 15/20] Make sha1_array_append take a struct object_id * brian m. carlson
2017-03-31  1:39 ` [PATCH v3 16/20] Convert remaining callers of sha1_array_lookup to object_id brian m. carlson
2017-03-31  1:39 ` [PATCH v3 17/20] Convert sha1_array_lookup to take struct object_id brian m. carlson
2017-03-31  1:39 ` [PATCH v3 18/20] Convert sha1_array_for_each_unique and for_each_abbrev to object_id brian m. carlson
2017-03-31  1:40 ` [PATCH v3 19/20] Rename sha1_array to oid_array brian m. carlson
2017-03-31  1:40 ` [PATCH v3 20/20] Documentation: update and rename api-sha1-array.txt brian m. carlson
2017-03-31 15:46 ` [PATCH v3 00/20] object_id part 7 Junio C Hamano

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).