git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 26/26] midx: switch to using the_hash_algo

From
Derrick Stolee <stolee@gmail.com>
Date
Aug 22, 2019, 14:04 UTC
Message-ID
<4f6b781b-68b8-5bc4-92a2-67caff32024f@gmail.com>
In-Reply-To
<20190818200427.870753-27-sandals@crustytoothpaste.net>
On 8/18/2019 4:04 PM, brian m. carlson wrote:
> Instead of hard-coding the hash size, use the_hash_algo to look up the
> hash size at runtime.  Remove the #define constant which was used to
> hold the hash length, since writing the expression with the_hash_algo
> provide enough documentary value on its own.

Thanks for this change! It seems to be very similar to the one included in the commit-graph, barring one small issue below (that we can follow-up on later).

Show 7 quoted lines
> diff --git a/midx.c b/midx.c
> index d649644420..f29afc0d2d 100644
> --- a/midx.c
> +++ b/midx.c
> @@ -19,8 +19,7 @@
>  #define MIDX_BYTE_NUM_PACKS 8
>  #define MIDX_HASH_VERSION 1

This hash version "1" is the same as we used in the commit-graph. It's a byte value from the file format, and we've already discussed how it would have been better to use the 4-byte identifier, but that ship has sailed. I'm just pointing this out to say that we are not done in this file yet, but we can get to that when we want to test the midx with multiple hash lengths.

>  #define MIDX_HEADER_SIZE 12
> -#define MIDX_HASH_LEN 20
The replacements of MIDX_HASH_LEN make sense. Thanks!
-Stolee
Previous: brian m. carlsonNext: brian m. carlson
Message 30 of 33 in “object_id part 17”
  1. 00/26 object_id part 17brian m. carlson, Aug 18, 2019
  2. 01/26 builtin/replace: make hash size independentbrian m. carlson, Aug 18, 2019
  3. 04/26 builtin/receive-pack: switch to use the_hash_algobrian m. carlson, Aug 18, 2019
  4. 03/26 fetch-pack: use parse_oid_hexbrian m. carlson, Aug 18, 2019
  5. 02/26 patch-id: convert to use the_hash_algobrian m. carlson, Aug 18, 2019
  6. René ScharfeAug 20, 2019
  7. brian m. carlsonAug 20, 2019
  8. Junio C HamanoAug 22, 2019
  9. 07/26 blame: remove needless comparison with GIT_SHA1_HEXSZbrian m. carlson, Aug 18, 2019
  10. 11/26 combine-diff: replace GIT_SHA1_HEXSZ with the_hash_algobrian m. carlson, Aug 18, 2019
  11. 10/26 bundle: switch to use the_hash_algobrian m. carlson, Aug 18, 2019
  12. 09/26 connected: switch GIT_SHA1_HEXSZ to the_hash_algobrian m. carlson, Aug 18, 2019
  13. 05/26 builtin/blame: switch uses of GIT_SHA1_HEXSZ to the_hash_algobrian m. carlson, Aug 18, 2019
  14. 06/26 builtin/rev-parse: switch to use the_hash_algobrian m. carlson, Aug 18, 2019
  15. 16/26 pack-write: use hash_to_hex when writing checksumsbrian m. carlson, Aug 18, 2019
  16. 17/26 builtin/repack: write object IDs of the proper lengthbrian m. carlson, Aug 18, 2019
  17. 19/26 cache: remove null_sha1brian m. carlson, Aug 18, 2019
  18. 18/26 builtin/worktree: switch null_sha1 to null_oidbrian m. carlson, Aug 18, 2019
  19. 20/26 wt-status: convert struct wt_status to object_idbrian m. carlson, Aug 18, 2019
  20. 15/26 sequencer: convert to use the_hash_algobrian m. carlson, Aug 18, 2019
  21. 12/26 config: use the_hash_algo in abbrev comparisonbrian m. carlson, Aug 18, 2019
  22. 21/26 packfile: replace sha1_to_hexbrian m. carlson, Aug 18, 2019
  23. 14/26 bisect: switch to using the_hash_algobrian m. carlson, Aug 18, 2019
  24. 22/26 builtin/index-pack: replace sha1_to_hexbrian m. carlson, Aug 18, 2019
  25. 25/26 builtin/show-index: replace sha1_to_hexbrian m. carlson, Aug 18, 2019
  26. 24/26 rerere: replace sha1_to_hexbrian m. carlson, Aug 18, 2019
  27. 08/26 show-index: switch hard-coded constants to the_hash_algobrian m. carlson, Aug 18, 2019
  28. 23/26 builtin/receive-pack: replace sha1_to_hexbrian m. carlson, Aug 18, 2019
  29. 26/26 midx: switch to using the_hash_algobrian m. carlson, Aug 18, 2019
  30. Derrick StoleeAug 22, 2019
  31. brian m. carlsonAug 23, 2019
  32. Derrick StoleeAug 23, 2019
  33. 13/26 sha1-lookup: switch hard-coded constants to the_hash_algobrian m. carlson, Aug 18, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.