Hello Christian, On 2024-06-19 14:57, Christian Couder wrote:
For debugging and statistical purposes, it can be useful for Git servers to know the OS the client are using. So let's add a new 'os-version' capability to the v2 protocol, in the same way as the existing 'agent' capability that lets clients and servers exchange the Git version they are running. This sends the same info as `git bugreport` is already sending, which uses uname(2). It should be the same as what `uname -srvm` returns, except that it is sanitized in the same way as the Git version sent by the 'agent' capability is sanitized (by replacing character having an ascii code less than 32 or more than 127 with '.').
This may probably be a useful debugging feature, but I strongly suggest that a configuration knob exists that makes disabling it possible. For security reasons, some users may not want to publicly advertise their OSes and kernel versions. Count me in as one of such users. :)
CI tests are currently failing on Windows as it looks like uname(1) and uname(2) don't report the same thing: -os-version=MINGW64_NT-10.0-20348.3.4.10-87d57229.x86_64.2024-02-14.20:17.UTC.x86_64 +os-version=Windows.10.0.20348 (See: https://github.com/chriscool/git/actions/runs/9581822699) Thoughts? Christian Couder (3): version: refactor strbuf_sanitize() version: refactor get_uname_info() connect: advertise OS version Documentation/gitprotocol-v2.txt | 18 +++++++++ builtin/bugreport.c | 13 +------ connect.c | 3 ++ serve.c | 12 ++++++ t/t5555-http-smart-common.sh | 3 ++ t/t5701-git-serve.sh | 3 ++ version.c | 67 ++++++++++++++++++++++++++++---- version.h | 10 +++++ 8 files changed, 111 insertions(+), 18 deletions(-)