git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Stefan Beller <sbeller@google.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v3 00/32] object-store: lookup_commit
Date: Fri, 29 Jun 2018 10:57:40 -0700	[thread overview]
Message-ID: <xmqq8t6xv5kb.fsf@gitster-ct.c.googlers.com> (raw)
In-Reply-To: <20180629012222.167426-1-sbeller@google.com> (Stefan Beller's message of "Thu, 28 Jun 2018 18:21:50 -0700")

Stefan Beller <sbeller@google.com> writes:

> This continues the elimination of global variables in the object store and
> teaches lookup_commit[_reference] and alike to handle a_repository.
>
> This is also available as
> https://github.com/stefanbeller/git/tree/object-store-lookup-commit
> or applies on top of 02f70d63027 (Merge branch 'sb/object-store-grafts'
> into next, 2018-06-28).
>
> Picking a base for this one is really hard, as nearly all series currently
> cooking or in flight collide with it on one or two lines. (lookup_* is used
> heavily, who would have thought?)

One technique these (not just this) recent efforts seem to be
forgetting is to introduce "new" names that take a_repo and then
make the existing one a thin wrapper that calls the new one with
&the_repo as the argument.

IOW, a new call to lookup_commit_reference(oid) in a function that
is happy to access the default repo (and notice taht 99% of our code
is happy with using just the currrent repository the user started
the git process for) does not need to be updated to call the
function with the same name with a different function signature
lookup_commit_reference(the_repo, oid).  If we name the new one
lookup_commit_reference_in_repo(r, oid) and make the callers that
already take a repo pointer call it, while leaving the callers that
do not even know or care about multiple in-core repo instances alone
to keep calling lookup_commit_reference(oid), you do not have to
worry too much about colliding.  That way, you do not have to step
on each others' toes with avoidable semantic merge conflicts and
incrementally improve things over time, no?

Thanks.

  parent reply	other threads:[~2018-06-29 17:57 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-29  1:21 [PATCH v3 00/32] object-store: lookup_commit Stefan Beller
2018-06-29  1:21 ` [PATCH v3 01/32] object: add repository argument to parse_object Stefan Beller
2018-06-29  1:21 ` [PATCH v3 02/32] object: add repository argument to lookup_object Stefan Beller
2018-06-29  1:21 ` [PATCH v3 03/32] object: add repository argument to parse_object_buffer Stefan Beller
2018-06-29  1:21 ` [PATCH v3 04/32] object: add repository argument to object_as_type Stefan Beller
2018-06-29  1:21 ` [PATCH v3 05/32] blob: add repository argument to lookup_blob Stefan Beller
2018-06-29  1:21 ` [PATCH v3 06/32] tree: add repository argument to lookup_tree Stefan Beller
2018-06-29  1:21 ` [PATCH v3 07/32] commit: add repository argument to lookup_commit_reference_gently Stefan Beller
2018-06-29  1:21 ` [PATCH v3 08/32] commit: add repository argument to lookup_commit_reference Stefan Beller
2018-06-29  1:21 ` [PATCH v3 09/32] commit: add repository argument to lookup_commit Stefan Beller
2018-06-29 14:46   ` Derrick Stolee
2018-06-29  1:22 ` [PATCH v3 10/32] commit: add repository argument to parse_commit_buffer Stefan Beller
2018-06-29 14:49   ` Derrick Stolee
2018-06-29  1:22 ` [PATCH v3 11/32] commit: add repository argument to set_commit_buffer Stefan Beller
2018-06-29  1:22 ` [PATCH v3 12/32] commit: add repository argument to get_cached_commit_buffer Stefan Beller
2018-06-29  1:22 ` [PATCH v3 13/32] tag: add repository argument to lookup_tag Stefan Beller
2018-06-29  1:22 ` [PATCH v3 14/32] tag: add repository argument to parse_tag_buffer Stefan Beller
2018-06-29  1:22 ` [PATCH v3 15/32] tag: add repository argument to deref_tag Stefan Beller
2018-06-29  1:22 ` [PATCH v3 16/32] object: allow object_as_type to handle arbitrary repositories Stefan Beller
2018-06-29  1:22 ` [PATCH v3 17/32] object: allow lookup_object " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 18/32] blob: allow lookup_blob " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 19/32] tree: allow lookup_tree " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 20/32] commit: allow lookup_commit " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 21/32] tag: allow lookup_tag " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 22/32] tag: allow parse_tag_buffer " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 23/32] commit.c: allow parse_commit_buffer " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 24/32] commit-slabs: remove realloc counter outside of slab struct Stefan Beller
2018-06-29  1:22 ` [PATCH v3 25/32] commit.c: migrate the commit buffer to the parsed object store Stefan Beller
2018-06-29  1:22 ` [PATCH v3 26/32] commit.c: allow set_commit_buffer to handle arbitrary repositories Stefan Beller
2018-06-29  1:22 ` [PATCH v3 27/32] commit.c: allow get_cached_commit_buffer " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 28/32] object.c: allow parse_object_buffer " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 29/32] object.c: allow parse_object " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 30/32] tag.c: allow deref_tag " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 31/32] commit.c: allow lookup_commit_reference_gently " Stefan Beller
2018-06-29  1:22 ` [PATCH v3 32/32] commit.c: allow lookup_commit_reference " Stefan Beller
2018-06-29 14:53 ` [PATCH v3 00/32] object-store: lookup_commit Derrick Stolee
2018-06-29 17:57 ` Junio C Hamano [this message]
2018-06-29 18:03   ` Junio C Hamano
2018-06-29 18:34     ` Stefan Beller
2018-06-29 19:37       ` Junio C Hamano
2018-06-29 22:20         ` Brandon Williams
2018-07-03 18:13           ` 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=xmqq8t6xv5kb.fsf@gitster-ct.c.googlers.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=sbeller@google.com \
    /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).