From: Josh Triplett <josh@joshtriplett.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jamey Sharp <jamey@minilop.net>,
"Shawn O. Pearce" <spearce@spearce.org>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Jeff King <peff@peff.net>, Jakub Narebski <jnareb@gmail.com>,
Bert Wesarg <bert.wesarg@googlemail.com>,
git@vger.kernel.org
Subject: Re: [PATCHv9 3/4] ref namespaces: Support remote repositories via upload-pack and receive-pack
Date: Wed, 6 Jul 2011 22:31:22 -0700 [thread overview]
Message-ID: <20110707053122.GA1798@leaf> (raw)
In-Reply-To: <7vy60bkzmf.fsf@alter.siamese.dyndns.org>
On Wed, Jul 06, 2011 at 11:55:36AM -0700, Junio C Hamano wrote:
> Josh Triplett <josh@joshtriplett.org> writes:
>
> > Change upload-pack and receive-pack to use the namespace-prefixed refs
> > when working with the repository, and use the unprefixed refs when
> > talking to the client, maintaining the masquerade. This allows
> > clone, pull, fetch, and push to work with a suitably configured
> > GIT_NAMESPACE.
> >
> > With appropriate configuration, this also allows http-backend to expose
> > namespaces as multiple repositories with different paths. This only
> > requires setting GIT_NAMESPACE, which http-backend passes through to
> > upload-pack and receive-pack.
> >
> > Signed-off-by: Josh Triplett <josh@joshtriplett.org>
> > Signed-off-by: Jamey Sharp <jamey@minilop.net>
> > ---
> > builtin/receive-pack.c | 37 +++++++++++++++++++++++++++++++------
> > upload-pack.c | 15 ++++++++-------
> > 2 files changed, 39 insertions(+), 13 deletions(-)
> >
> > diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
> > index e1a687a..2d36378 100644
> > --- a/builtin/receive-pack.c
> > +++ b/builtin/receive-pack.c
> > @@ -120,9 +120,17 @@ static int show_ref(const char *path, const unsigned char *sha1, int flag, void
> > return 0;
> > }
> >
> > +static int show_ref_cb(const char *path, const unsigned char *sha1, int flag, void *cb_data)
> > +{
> > + path = strip_namespace(path);
> > + if (!path)
> > + path = ".have";
> > + return show_ref(path, sha1, flag, cb_data);
>
> At the first glance, this felt somewhat unoptimal as it forbids us from
> stuffing fake "ref" entries other than ".have" via the add_extra_ref()
> interface, and I wondered if it would make sense to do something like this
> instead:
>
> const char *ns_path = strip_namespace(path);
> if (!ns_path)
> ns_path = path;
> return show_ref(ns_path, sha1, flag, cb_data);
>
> But that is flawed, and I think your patch does the right thing. The
> justification is a bit subtle [*1*] and I think it needs to be explained
> in a comment around here, not just in the 0/4 cover letter message.
Will do. How does the following coment sound?
/* We advertise refs outside our current namespace as .have refs, so
* that the client can use them to minimize data transfer but will
* otherwise ignore them. */
- Josh Triplett
next prev parent reply other threads:[~2011-07-07 5:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-05 17:54 [PATCHv9 0/4] ref namespaces Josh Triplett
2011-07-05 17:54 ` [PATCHv9 1/4] Fix prefix handling in ref iteration functions Josh Triplett
2011-07-05 17:54 ` [PATCHv9 2/4] ref namespaces: infrastructure Josh Triplett
2011-07-05 17:55 ` [PATCHv9 3/4] ref namespaces: Support remote repositories via upload-pack and receive-pack Josh Triplett
2011-07-06 18:55 ` Junio C Hamano
2011-07-07 5:31 ` Josh Triplett [this message]
2011-07-05 17:55 ` [PATCHv9 4/4] ref namespaces: documentation Josh Triplett
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=20110707053122.GA1798@leaf \
--to=josh@joshtriplett.org \
--cc=Johannes.Schindelin@gmx.de \
--cc=bert.wesarg@googlemail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jamey@minilop.net \
--cc=jnareb@gmail.com \
--cc=peff@peff.net \
--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.