All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Jamey Sharp <jamey@minilop.net>
Cc: git@vger.kernel.org, Josh Triplett <josh@joshtriplett.org>,
	"Shawn O. Pearce" <spearce@spearce.org>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Johannes Sixt <johannes.sixt@telecom.at>
Subject: Re: [PATCHv2 1/2] Support multiple virtual repositories with a single object store and refs
Date: Tue, 24 May 2011 16:10:42 -0700	[thread overview]
Message-ID: <7v7h9f7kzx.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <1306274066-4092-1-git-send-email-jamey@minilop.net> (Jamey Sharp's message of "Tue, 24 May 2011 14:54:25 -0700")

Jamey Sharp <jamey@minilop.net> writes:

> Given many repositories with copies of the same objects (such as
> branches of the same source), sharing a common object store will avoid
> duplication.  Alternates provide a single baseline, but don't handle
> ongoing activity in the various repositories.  Git safely handles
> concurrent accesses to the same object store across repositories, but
> operations such as gc need to know about all of the refs.
>
> This change adds support in upload-pack and receive-pack to simulate
> multiple virtual repositories within the object store and references of

Is it just me to read the above and then have to re-read the first
sentence of the second paragraph over and over again?  There seems to be a
huge gap in logic flow, probably largely due to the use of undefined term
"virtual repository".

I think the idea is "an object store .git/objects/ may have more objects
than the refs .git/refs/* in the repository that particular object store
belongs to, and it is unsafe to gc there" (the first paragraph), and then
what is left unsaid is "to solve it, we propose to add an extra namespace
in the refs hierarchy of such a repository that lets other repositories to
borrow its objects from, and store the tips of refs of the borrowing
repository there (and call such a repository that lets others borrow a
virtual repository)" or something.

Without presenting what you are trying to solve...

> a single underlying repository.  The refs and heads of the virtual
> repositories get stored in the underlying repository using prefixed
> names specified by the --ref-prefix and --head options; for instance,
> --ref-prefix=repo1/ will use refs/repo1/heads/* and refs/repo1/tags/*.
> upload-pack and receive-pack will not expose any references that do not
> match the specified prefix.
>
> These options implement the underlying mechanism for virtual
> repositories; the higher-level protocol handler (such as http-backend or
> a custom server) can pass these options when invoking upload-pack or
> receive-pack, providing values based on components of the repository
> path.

... these are just gibberish describing technical details at too low-level.

> For a simple local test, git-remote-ext works:
>
> git clone ext::'git %s --ref-prefix=prefix/ --head=prefix-HEAD /tmp/prefixed.git'
>
> Commit by Josh Triplett and Jamey Sharp.

Have a blank line here, as that line is not part of Sign-of chain.

> Signed-off-by: Josh Triplett <josh@joshtriplett.org>
> Signed-off-by: Jamey Sharp <jamey@minilop.net>

> Cc: Shawn O. Pearce <spearce@spearce.org>
> Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>
> Cc: Johannes Sixt <johannes.sixt@telecom.at>

Also personally I do not appreciate seeing Cc: here. You already have them
at the header of your e-mail; these lines belong there, not here.

I haven't looked deeply at the patch yet.

  parent reply	other threads:[~2011-05-24 23:11 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-24 21:54 [PATCHv2 1/2] Support multiple virtual repositories with a single object store and refs Jamey Sharp
2011-05-24 21:54 ` [PATCHv2 2/2] Support virtual repositories in smart http-backend, specified by environment Jamey Sharp
2011-05-24 23:10 ` Junio C Hamano [this message]
2011-05-25  6:51   ` [PATCHv2 1/2] Support multiple virtual repositories with a single object store and refs Johannes Schindelin
2011-05-25 15:44     ` Jamey Sharp
2011-05-25 19:43       ` Junio C Hamano
2011-05-25 23:56         ` Johannes Schindelin
2011-05-25 23:53       ` Johannes Schindelin
2011-05-26  0:01         ` Josh Triplett
2011-05-26  0:40           ` Johannes Schindelin
2011-05-26  4:08             ` 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

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

  git send-email \
    --in-reply-to=7v7h9f7kzx.fsf@alter.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=jamey@minilop.net \
    --cc=johannes.sixt@telecom.at \
    --cc=josh@joshtriplett.org \
    --cc=spearce@spearce.org \
    /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.