From: "Carlos Martín Nieto" <cmn@elego.de>
To: Shawn Pearce <spearce@spearce.org>
Cc: "Junio C Hamano" <gitster@pobox.com>, git <git@vger.kernel.org>,
"Jonathan Nieder" <jrnieder@gmail.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: Re: [PATCH 0/2] thin-pack capability for send-pack/receive-pack
Date: Sat, 23 Nov 2013 16:09:22 +0100 [thread overview]
Message-ID: <1385219362.2665.18.camel@centaur.cmartin.tk> (raw)
In-Reply-To: <CAJo=hJtUMZit8Mtt7NQ=SiAXmnHf3xQqCKMo3F3XksHoq0tCkw@mail.gmail.com>
On Wed, 2013-11-06 at 15:42 -0800, Shawn Pearce wrote:
> On Wed, Nov 6, 2013 at 1:41 PM, Carlos Martín Nieto <cmn@elego.de> wrote:
> > On Wed, 2013-11-06 at 12:32 -0800, Junio C Hamano wrote:
> >> I'll queue these for now, but I doubt the wisdom of this series,
> >> given that the ship has already sailed long time ago.
> >>
> >> Currently, no third-party implementation of a receiving end can
> >> accept thin push, because "thin push" is not a capability that needs
> >> to be checked by the current clients. People will have to wait
> >> until the clients with 2/2 patch are widely deployed before starting
> >> to use such a receiving end that is incapable of "thin push".
> >>
> >> Wouldn't the world be a better place if instead they used that time
> >> waiting to help such a third-party receiving end to implement "thin
> >> push" support?
> >>
> >
> > Support in the code isn't always enough. The particular case that
> > brought this on is one where the index-pack implementation can deal with
> > thin packs just fine.
> >
> > This particular service takes the pack which the client sent and does
> > post-processing on it to store it elsewhere. During the receive-pack
> > equivalent, there is no git object db that it can query for the missing
> > base objects. I realise this is pretty a unusual situation.
>
> How... odd?
>
> At Google we have made effort to ensure servers can accept thin packs,
> even though its clearly easier to accept non-thin, because clients in
> the wild already send thin packs and changing the deployed clients is
> harder than implementing the existing protocol.
It is harder, but IMO also more correct, as thin packs are an
optimisation that was added somewhat later. Not to say it shouldn't be
something you should attempt to do, but it's a trade-off between the
complexity of the communication between the pieces and the potential
amount of extra data you're willing to put up with.
The Google (Code) servers don't just support thin packs, but for
upload-pack, they force it upon the client, which is quite frustrating
as it won't even tell you why it closes the connection but sends a 500
instead, but that's a different story.
>
> If the server can't complete the pack, I guess this also means the
> client cannot immediately fetch from the server it just pushed to?
Not all the details have been worked out yet, but the new history should
be converted into the target format before reporting success and closing
the connection. The Git frontend/protocol is one way of putting data
into the system, but that's not its native data storage format. The
database where this is getting stored only has very limited knowledge of
git.
I'll reroll the series with "no-thin" as mentioned elsewhere in this
thread.
cmn
prev parent reply other threads:[~2013-11-23 15:09 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-06 15:04 [PATCH 0/2] thin-pack capability for send-pack/receive-pack Carlos Martín Nieto
2013-11-06 15:04 ` [PATCH 1/2] receive-pack: advertise thin-pack Carlos Martín Nieto
2013-11-06 15:04 ` [PATCH 2/2] send-pack: only send a thin pack if the server supports it Carlos Martín Nieto
2013-11-06 20:32 ` [PATCH 0/2] thin-pack capability for send-pack/receive-pack Junio C Hamano
2013-11-06 21:41 ` Carlos Martín Nieto
2013-11-06 22:25 ` Junio C Hamano
2013-11-06 22:54 ` Jeff King
2013-11-06 23:47 ` Shawn Pearce
2013-11-06 23:42 ` Shawn Pearce
2013-11-23 15:09 ` Carlos Martín Nieto [this message]
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=1385219362.2665.18.camel@centaur.cmartin.tk \
--to=cmn@elego.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=pclouds@gmail.com \
--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 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 NNTP newsgroup(s).