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

Re: [PATCH v2 5/7] reftable: ensure that obj_id_len is >= 2 on writing

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 18, 2022, 00:01 UTC
Message-ID
<xmqq8ru959fz.fsf@gitster.g>
In-Reply-To
<2bd3d44ba57ddb43c09367b45a8f056233d465e9.1645106124.git.gitgitgadget@gmail.com>
"Han-Wen Nienhuys via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 12 quoted lines
> diff --git a/reftable/writer.c b/reftable/writer.c
> index d54215a50dc..5e4e6e93416 100644
> --- a/reftable/writer.c
> +++ b/reftable/writer.c
> @@ -515,7 +515,9 @@ static void object_record_free(void *void_arg, void *key)
>  static int writer_dump_object_index(struct reftable_writer *w)
>  {
>  	struct write_record_arg closure = { .w = w };
> -	struct common_prefix_arg common = { NULL };
> +	struct common_prefix_arg common = {
> +		.max = 1,		/* obj_id_len should be >= 2. */
> +	};

It feels somewhat strange that we have to set .max to set the floor for the minimum length, but given the way update_common() uses and maintains the member, it is more like "max size we have seen so far", and by pretending that we have already seen common prefix of length 1, we'd force ourselves that we need at least 2 to differentiate.

>  	if (w->obj_index_tree) {
>  		infix_walk(w->obj_index_tree, &update_common, &common);
>  	}
Previous: Han-Wen Nienhuys via GitGitGadgetNext: Han-Wen Nienhuys via GitGitGadget
Message 21 of 33 in “reftable: avoid reading and writing empty keys”
  1. 0/7 reftable: avoid reading and writing empty keysHan-Wen Nienhuys via GitGitGadget, Jan 12, 2022
  2. 1/7 Documentation: object_id_len goes up to 31Han-Wen Nienhuys via GitGitGadget, Jan 12, 2022
  3. 2/7 reftable: reject 0 object_id_lenHan-Wen Nienhuys via GitGitGadget, Jan 12, 2022
  4. 3/7 reftable: add a test that verifies that writing empty keys failsHan-Wen Nienhuys via GitGitGadget, Jan 12, 2022
  5. 4/7 reftable: avoid writing empty keys at the block layerHan-Wen Nienhuys via GitGitGadget, Jan 12, 2022
  6. Junio C HamanoJan 14, 2022
  7. Han-Wen NienhuysJan 17, 2022
  8. Junio C HamanoJan 17, 2022
  9. 5/7 reftable: ensure that obj_id_len is >= 2 on writingHan-Wen Nienhuys via GitGitGadget, Jan 12, 2022
  10. 6/7 reftable: add test for length of disambiguating prefixHan-Wen Nienhuys via GitGitGadget, Jan 12, 2022
  11. 7/7 reftable: rename writer_stats to reftable_writer_statsHan-Wen Nienhuys via GitGitGadget, Jan 12, 2022
  12. 0/7 reftable: avoid reading and writing empty keysHan-Wen Nienhuys via GitGitGadget, Feb 17, 2022
  13. 1/7 Documentation: object_id_len goes up to 31Han-Wen Nienhuys via GitGitGadget, Feb 17, 2022
  14. 2/7 reftable: reject 0 object_id_lenHan-Wen Nienhuys via GitGitGadget, Feb 17, 2022
  15. Junio C HamanoFeb 18, 2022
  16. 3/7 reftable: add a test that verifies that writing empty keys failsHan-Wen Nienhuys via GitGitGadget, Feb 17, 2022
  17. 4/7 reftable: avoid writing empty keys at the block layerHan-Wen Nienhuys via GitGitGadget, Feb 17, 2022
  18. Junio C HamanoFeb 17, 2022
  19. Han-Wen NienhuysFeb 21, 2022
  20. 5/7 reftable: ensure that obj_id_len is >= 2 on writingHan-Wen Nienhuys via GitGitGadget, Feb 17, 2022
  21. Junio C HamanoFeb 18, 2022
  22. 6/7 reftable: add test for length of disambiguating prefixHan-Wen Nienhuys via GitGitGadget, Feb 17, 2022
  23. 7/7 reftable: rename writer_stats to reftable_writer_statsHan-Wen Nienhuys via GitGitGadget, Feb 17, 2022
  24. Junio C HamanoFeb 18, 2022
  25. 0/7 reftable: avoid reading and writing empty keysHan-Wen Nienhuys via GitGitGadget, Feb 21, 2022
  26. 2/7 reftable: reject 0 object_id_lenHan-Wen Nienhuys via GitGitGadget, Feb 21, 2022
  27. 1/7 Documentation: object_id_len goes up to 31Han-Wen Nienhuys via GitGitGadget, Feb 21, 2022
  28. 4/7 reftable: avoid writing empty keys at the block layerHan-Wen Nienhuys via GitGitGadget, Feb 21, 2022
  29. 3/7 reftable: add a test that verifies that writing empty keys failsHan-Wen Nienhuys via GitGitGadget, Feb 21, 2022
  30. 5/7 reftable: ensure that obj_id_len is >= 2 on writingHan-Wen Nienhuys via GitGitGadget, Feb 21, 2022
  31. 6/7 reftable: add test for length of disambiguating prefixHan-Wen Nienhuys via GitGitGadget, Feb 21, 2022
  32. 7/7 reftable: rename writer_stats to reftable_writer_statsHan-Wen Nienhuys via GitGitGadget, Feb 21, 2022
  33. Junio C HamanoFeb 23, 2022

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.