Thread (8 messages) flat view 8 messages, 3 authors, 2016-06-15

Re: [PATCH] fetch-pack: fix unadvertised requests validation

From: Gabriel Souza Franco <hidden>
Date: 2016-06-15 23:08:31

Possibly related (same subject, not in this thread)

On Sat, Feb 27, 2016 at 4:19 PM, Jeff King [off-list ref] wrote:
On Sat, Feb 27, 2016 at 02:07:12PM -0500, Jeff King wrote:
quoted
We expect whoever creates the "sought" list to fill in the name and sha1
as appropriate. If that is not happening in some code path, then yeah,
filter_refs() will not work as intended. But I think the solution there
would be to fix the caller to set up the "struct ref" more completely.

Gabriel, did this come from a bug you noticed in practice, or was it
just an intended cleanup?
I was experimenting with uploadpack.hiderefs and uploadpack.allowTipSHA1InWant
and couldn't get

        git fetch-pack $remote <sha1>

to work, and I traced the failure until that check. Reading more, I now see
that currently it requires

       git fetch-pack $remote "<sha1> <sha1>"

to do what I want.
I double-checked that the code for git-fetch does so. It's in
get_fetch_map()

    if (refspec->exact_sha1) {
            ref_map = alloc_ref(name);
            get_oid_hex(name, &ref_map->old_oid);
    } else ...

So we should always have old_oid filled in already, and there is no need
to do so in filter_refs() (and in fact it is wrong, for the degenerate
example I gave earlier).
git fetch-pack doesn't use these code paths. I'll send a new patch
shortly to allow
bare sha1's in fetch-pack.
-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help