On Tue, 2 Jan 2018 16:18:22 -0800 Brandon Williams <bmwill@xxxxxxxxxx> wrote: > +static enum ack_type process_ack(const char *line, struct object_id *oid) > +{ > + const char *arg; > + > + if (!strcmp(line, "NAK")) > + return NAK; > + if (skip_prefix(line, "ACK ", &arg)) { > + if (!parse_oid_hex(arg, oid, &arg)) { > + if (strstr(arg, "continue")) > + return ACK_continue; This function seems to be only used for v2, so I don't think we need to parse "continue". Also, maybe describe the plan for supporting functionality not supported yet (e.g. server-side declaration of shallows and client-side "deepen"). It may be possible to delay support for server-side shallows on the server (that is, only implement support for it in the client) since the server can just declare that it doesn't support protocol v2 when serving such repos (although it might just be easier to implement server-side support in this case). For "deepen", we need support for it both on the client and the server now unless we plan to declare a "deepen" capability in the future (then, as of these patches, clients that require "deepen" will use protocol v1; when a new server declares "deepen", old clients will ignore it and keep the status quo, and new clients can then use "deepen"). There may be others that I've missed.