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

Re: [PATCH v3 00/32] object-store: lookup_commit

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 3, 2018, 18:13 UTC
Message-ID
<xmqq8t6srxvq.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20180629222004.GA197765@google.com>
Brandon Williams <bmwill@google.com> writes:
Show 5 quoted lines
> I 100% think that we need to continue these refactorings with both the
> object store as well as with the_index (removing the index macros and
> removing the dependency on global state).  The whole compat macros most
> definitely was a failed experiment as we still haven't rid the code
> base of them yet.

These two are completely different things. You can call the compat macros a failed experiment only if two things hold true: (1) we want to force all callsites to explicitly pass the_index even when they always work on the primary in-core instance of istate and (2) they were invented primarily in the hope that their presense will help us achieve (1) sooner. And neither is true. The mechanism to allow multiple in-core istate were of course helpful in places like branch switching and merging, but we expected that the majority of then-existing code would be required to work on the primary in-core index, so s/foo_cache(/foo_index(&the_index/ conversion all over the place were noisier than it was worth. The compat macros were not introduced as an experiment to help wean ourselves off of the foo_cache API. It was a total opposite---it was a consideration on production code to help existing code keep working in backward compatible way. In short, they were neither failed nor experiment.

What you _could_ say about them, given that more code than before would benefit by learning to work on istate instances other than the default &the_index these days, is that they may have outlived their usefulness, though.

Previous: Brandon Williams
Message 42 of 42 in “object-store: lookup_commit”
  1. 00/32 object-store: lookup_commitStefan Beller, Jun 29, 2018
  2. 02/32 object: add repository argument to lookup_objectStefan Beller, Jun 29, 2018
  3. 01/32 object: add repository argument to parse_objectStefan Beller, Jun 29, 2018
  4. 03/32 object: add repository argument to parse_object_bufferStefan Beller, Jun 29, 2018
  5. 05/32 blob: add repository argument to lookup_blobStefan Beller, Jun 29, 2018
  6. 04/32 object: add repository argument to object_as_typeStefan Beller, Jun 29, 2018
  7. 08/32 commit: add repository argument to lookup_commit_referenceStefan Beller, Jun 29, 2018
  8. 10/32 commit: add repository argument to parse_commit_bufferStefan Beller, Jun 29, 2018
  9. Derrick StoleeJun 29, 2018
  10. 06/32 tree: add repository argument to lookup_treeStefan Beller, Jun 29, 2018
  11. 11/32 commit: add repository argument to set_commit_bufferStefan Beller, Jun 29, 2018
  12. 12/32 commit: add repository argument to get_cached_commit_bufferStefan Beller, Jun 29, 2018
  13. 14/32 tag: add repository argument to parse_tag_bufferStefan Beller, Jun 29, 2018
  14. 15/32 tag: add repository argument to deref_tagStefan Beller, Jun 29, 2018
  15. 16/32 object: allow object_as_type to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  16. 17/32 object: allow lookup_object to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  17. 18/32 blob: allow lookup_blob to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  18. 19/32 tree: allow lookup_tree to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  19. 20/32 commit: allow lookup_commit to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  20. 21/32 tag: allow lookup_tag to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  21. 23/32 commit.c: allow parse_commit_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  22. 24/32 commit-slabs: remove realloc counter outside of slab structStefan Beller, Jun 29, 2018
  23. 25/32 commit.c: migrate the commit buffer to the parsed object storeStefan Beller, Jun 29, 2018
  24. 26/32 commit.c: allow set_commit_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  25. 28/32 object.c: allow parse_object_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  26. 30/32 tag.c: allow deref_tag to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  27. 29/32 object.c: allow parse_object to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  28. 31/32 commit.c: allow lookup_commit_reference_gently to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  29. 32/32 commit.c: allow lookup_commit_reference to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  30. 22/32 tag: allow parse_tag_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  31. 27/32 commit.c: allow get_cached_commit_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  32. 07/32 commit: add repository argument to lookup_commit_reference_gentlyStefan Beller, Jun 29, 2018
  33. 09/32 commit: add repository argument to lookup_commitStefan Beller, Jun 29, 2018
  34. Derrick StoleeJun 29, 2018
  35. 13/32 tag: add repository argument to lookup_tagStefan Beller, Jun 29, 2018
  36. Derrick StoleeJun 29, 2018
  37. Junio C HamanoJun 29, 2018
  38. Junio C HamanoJun 29, 2018
  39. Stefan BellerJun 29, 2018
  40. Junio C HamanoJun 29, 2018
  41. Brandon WilliamsJun 29, 2018
  42. Junio C HamanoJul 3, 2018

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.