Re: Git 2.26 fetches many times more objects than it should, wasting gigabytes
Jonathan Nieder <jrnieder@gmail.com> writes:
> When process_acks sees an ACK, it passes it on to the negotiator.
> It wants to record that it received an ack to reset in_vain, but
> it forgets to! The function is initialized and read but never
> written to.
Yeah, this smells like the right solution ;-)
s/function/variable/ though.
Show 16 quoted lines
>
> So I'd expect the following to help:
>
> diff --git i/fetch-pack.c w/fetch-pack.c
> index 1734a573b01..a1d743e1f61 100644
> --- i/fetch-pack.c
> +++ w/fetch-pack.c
> @@ -1287,6 +1287,8 @@ static int process_acks(struct fetch_negotiator *negotiator,
> struct object_id oid;
> if (!get_oid_hex(arg, &oid)) {
> struct commit *commit;
> +
> + received_ack = 1;
> oidset_insert(common, &oid);
> commit = lookup_commit(the_repository, &oid);
> if (negotiator)