All of lore.kernel.org
 help / color / mirror / Atom feed
From: Glen Choo <chooglen@google.com>
To: Jonathan Tan <jonathantanmy@google.com>
Cc: hanwen@google.com, git@vger.kernel.org
Subject: Re: [RFC PATCH 1/2] refs: make _advance() check struct repo, not flag
Date: Tue, 14 Sep 2021 15:41:51 -0700	[thread overview]
Message-ID: <YUElL3RI0VTnjE5C@chooglen-macbookpro.roam.corp.google.com> (raw)
In-Reply-To: <20210826222439.3915402-1-jonathantanmy@google.com>

On Thu, Aug 26, 2021 at 03:24:39PM -0700, Jonathan Tan wrote:
> > If they have to know about the object store, have you considered
> > passing the repository pointer
> > in xxx_ref_store_create() ? Then there is no possibliity to mismatch
> > the repository pointers and with the ref store.
> 
> I thought about that, but didn't want to make things worse - the effort
> in this patch set is, after all, to attempt to increase the dissociation
> between the ref stores and a certain object store (that is,
> the_repository's object store), and I thought that reintroducing an
> association (albeit to arbitrary object stores instead of a hardcoded
> object store) would be a step back.
> 
> But this may be the way to go - the ref stores already have a gitdir
> field that we could replace with a struct repository field.

I'm curious about how we'd want to resolve the general problem of ref
stores referencing odbs. 

A discussion I had with Jonathan Nieder suggests that ref stores are
doing two slightly related, but not equivalent things:

- a logical ref database that preserves its own consistency
- a layer of ref storage in such a ref database

In the current state of affairs, the files ref store and the packed ref
store seem to behave as a single logical ref database. An example of
this (that I care about in particular) is in refs/files-backend.c where
the files backend validates oids using the_repository's odb.
refs/packed-backend.c doesn't do any such validation, and presumably
just relies on the correctness of refs/files-backend.c. I assume that
this also explains why some functions in refs_be_packed are stubs.

The answer to whether or not a ref store should refer to a certain
object store seems unresolved because a ref store is trying to do two
separate things. Perhaps it is reasonable to associate a ref database
with an object store (so that it can validate its refs), but we would
prefer to dissociate the physical ref storage layer from the object
store. (I'm paraphrasing Johnathan Nieder here, this isn't an original
thought).

Perhaps this is a question we want to resolve when considering reftable
and other ref databases.

  reply	other threads:[~2021-09-14 22:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-25 23:23 [RFC PATCH 0/2] First steps towards iterating over submodule refs Jonathan Tan
2021-08-25 23:23 ` [RFC PATCH 1/2] refs: make _advance() check struct repo, not flag Jonathan Tan
2021-08-26 16:39   ` Han-Wen Nienhuys
2021-08-26 22:24     ` Jonathan Tan
2021-09-14 22:41       ` Glen Choo [this message]
2021-09-15  7:35         ` Han-Wen Nienhuys
2021-09-16 17:26           ` Jonathan Tan
2021-09-16 21:56             ` Junio C Hamano
2021-09-16 22:05               ` Jonathan Tan
2021-09-16 17:24         ` Jonathan Tan
2021-08-25 23:23 ` [RFC PATCH 2/2] refs: add repo paramater to _iterator_peel() Jonathan Tan

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YUElL3RI0VTnjE5C@chooglen-macbookpro.roam.corp.google.com \
    --to=chooglen@google.com \
    --cc=git@vger.kernel.org \
    --cc=hanwen@google.com \
    --cc=jonathantanmy@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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.