threads / discuss / 32833

v3, 8 partsRe: Is anyone working on a next-gen Git protocol (Re: [PATCH v3 0/8] Hiding refs)

Subject: Re: Is anyone working on a next-gen Git protocol (Re: [PATCH v3 0/8] Hiding refs)

## tl;dr

3 messages between Feb 5, 2013 and Feb 5, 2013. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Ævar Arnfjörð Bjarmason· Feb 5, 2013, 11:14 UTC · lore
On Wed, Jan 30, 2013 at 7:45 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 12 quoted lines
> The third round.
>
>  - Multi-valued variable transfer.hiderefs lists prefixes of ref
>    hierarchies to be hidden from the requests coming over the
>    network.
>
>  - A configuration optionally allows uploadpack to accept fetch
>    requests for an object at the tip of a hidden ref.
>
> Elsewhere, we discussed "delaying ref advertisement" (aka "expand
> refs"), but it is an orthogonal feature and this "hiding refs
> completely from advertisement" series does not attempt to address.
I'm a bit late to this so sorry if this has been covered before.

In the initial draft of this series the rationale for it was "reducing the network cost while talking with a repository with tons of refs"[1]. But later you seem to have changed your mind, and "network bandwidth reduction of advertisement is a side effect of clutter reduction, and not necessarily the primary goal".

Do you have any plans for something that *does* have the reduction of network bandwidth as a primary goal?

In October I asked if anyone was working on a next-gen Git protocol[3] that would provide clients with the ability to specify what refs they wanted. You replied to me off-list saying "Yes".

Is this what you've been working on? Because if so I misunderstood you thinking you were going to work on something that gave clients the ability specify what they wanted before the initial ref advertisement.

I'm still very keen to have that ability, so if you're not working on it I just might give it a go.

1. http://article.gmane.org/gmane.comp.version-control.git/213951
2. http://article.gmane.org/gmane.comp.version-control.git/213984
3. http://article.gmane.org/gmane.comp.version-control.git/214025
4. http://thread.gmane.org/gmane.comp.version-control.git/207190
Junio C Hamano· Feb 5, 2013, 16:03 UTC · re: Ævar Arnfjörð Bjarmason · lore
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> Do you have any plans for something that *does* have the reduction of
> network bandwidth as a primary goal?

Uncluttering gives reduction of bandwidth anyway, so I do not see much point in the distinction you seem to be making.

Show 5 quoted lines
> Is this what you've been working on? Because if so I misunderstood you
> thinking you were going to work on something that gave clients the
> ability specify what they wanted before the initial ref advertisement.
> ...
> 4. http://thread.gmane.org/gmane.comp.version-control.git/207190

"Who speaks first" mentioned in 4. above, was primarily about "delaying ref advertisement", which would be a larger protocol change. Nobody seems to have attacked it since it was discussed, and I was tired of hearing nothing but complaints and whines. This "hiding refs" series was done as a cheaper way to solve a related issue, without having to wait for the solution of "delaying advertisement", which is an orthogonal issue.

Ævar Arnfjörð Bjarmason· Feb 5, 2013, 20:07 UTC · re: Junio C Hamano · lore
On Tue, Feb 5, 2013 at 5:03 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 7 quoted lines
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>
>> Do you have any plans for something that *does* have the reduction of
>> network bandwidth as a primary goal?
>
> Uncluttering gives reduction of bandwidth anyway, so I do not see
> much point in the distinction you seem to be making.

Doing this work wouldn't only give us a way to specify which refs we want, but if done correctly would future-proof the protocol in case we want to add any other extensions down the line in a backwards-compatible fashion without having the server first spew all his refs at us.

Anyway, an implementation that allows a client to say "I want X" is simpler than an implementation where a server has to anticipate in advance which X the clients will ask for.

Show 13 quoted lines
>> Is this what you've been working on? Because if so I misunderstood you
>> thinking you were going to work on something that gave clients the
>> ability specify what they wanted before the initial ref advertisement.
>> ...
>> 4. http://thread.gmane.org/gmane.comp.version-control.git/207190
>
> "Who speaks first" mentioned in 4. above, was primarily about
> "delaying ref advertisement", which would be a larger protocol
> change.  Nobody seems to have attacked it since it was discussed,
> and I was tired of hearing nothing but complaints and whines.  This
> "hiding refs" series was done as a cheaper way to solve a related
> issue, without having to wait for the solution of "delaying
> advertisement", which is an orthogonal issue.

Oh sure. I just wanted to know if you were working on delaying ref advertisement to avoid duplicating efforts. I had the impression you were given your earlier E-Mail, but obviously we had a misunderstanding.

← back to recent threads