Building on top of protocol version 2 this series adds the ability to optionally send server specific options when using protocol v2. This resembles the "push-options" feature except server options are sent as capability lines during a command request allowing for all current and future commands to benefit from sending arbitrary server options (and not requiring that sending server specific options be re-implemented for each and every command that may want to make use of them in the future). These options can be provided by the user via the command line by giving "-o <option>" or "--server-option=<option>" to either ls-remote or fetch. Command request example: command=fetch server-option=hello server-option=world 0001 want A want B have X have Y 0000 These options are only transmitted to the remote end when communicating using protocol version 2. Brandon Williams (3): serve: introduce the server-option capability ls-remote: send server options when using protocol v2 fetch: send server options when using protocol v2 Documentation/fetch-options.txt | 8 +++++++ Documentation/git-ls-remote.txt | 8 +++++++ Documentation/technical/protocol-v2.txt | 10 ++++++++ builtin/fetch.c | 5 ++++ builtin/ls-remote.c | 4 ++++ connect.c | 9 ++++++- fetch-pack.c | 7 ++++++ fetch-pack.h | 1 + remote.h | 4 +++- serve.c | 1 + t/t5701-git-serve.sh | 21 ++++++++++++++++ t/t5702-protocol-v2.sh | 32 +++++++++++++++++++++++++ transport.c | 3 ++- transport.h | 6 +++++ 14 files changed, 116 insertions(+), 3 deletions(-) -- 2.17.0.484.g0c8726318c-goog