ls-refs: reject unknown arguments
commitccf094788c50c597972ee1fd9c2b554cadc0f14c
authorJeff King <peff@peff.net>
Wed, 15 Sep 2021 18:36:38 +0000 (15 14:36 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Sep 2021 19:25:19 +0000 (15 12:25 -0700)
tree53e1be40071746184f9578510771a3f53e9ffd24
parent0ab7eeccd9aea668819288c086dcdf57ca14a026
ls-refs: reject unknown arguments

The v2 ls-refs command may receive extra arguments from the client, one
per pkt-line. The spec is pretty clear that the arguments must come from
a specified set, but we silently ignore any unknown entries. For a
well-behaved client this doesn't matter, but it makes testing and
debugging more confusing. Let's tighten this up to match the spec.

In theory this liberal behavior _could_ be useful for extending the
protocol. But:

  - every other part of the protocol requires that the server first
    indicate that it supports the argument; this includes the fetch and
    object-info commands, plus the "unborn" capability added to ls-refs
    itself

  - it's not a very good extension mechanism anyway; without the server
    advertising support, clients would have no idea if the argument was
    silently ignored, or accepted and simply had no effect

So we're not really losing anything by tightening this.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ls-refs.c
t/t5701-git-serve.sh