> This is a bit difficult to read and there is no reason why we would need > to read the entire upload_pack_config to determine if we need to filter > things (we will need to read the config if cmd "fetch" is requested > though). Instead it may be better to do the following: > > if (value) { > strbuf_addstr(value, "shallow"); > if (repo_config_get(r, "uplaodpack.filter")) > strbuf_addstr(value, " filter"); > } > > This way its easier to read and you only are reading the required value > from the config. Thanks, Brandon. I went ahead and used repo_config_get_bool(), and indeed it works. Removing the call to git_config() from there exposed another issue in that configs were not read if upload-pack was used with protocol v2, so I inserted a patch in the middle addressing that. While writing that patch, I noticed that uploadpack.packobjectshook couldn't take filenames with spaces, which I think is due to prepare_shell_cmd() in run-command.c not quoting properly. Adding single quotes around "%s" worked, but made other tests fail. Instead of continuing down that rabbit hole, I just made the uploadpack.packobjectshook not have any spaces, just like in t5544. Jonathan Tan (3): upload-pack: fix error message typo upload-pack: read config when serving protocol v2 {fetch,upload}-pack: support filter in protocol v2 Documentation/technical/protocol-v2.txt | 9 ++ fetch-pack.c | 23 ++++- t/t5701-git-serve.sh | 14 +++ t/t5702-protocol-v2.sh | 112 ++++++++++++++++++++++++ upload-pack.c | 19 +++- 5 files changed, 171 insertions(+), 6 deletions(-) -- 2.17.0.441.gb46fe60e1d-goog