Merge branch 'ua/os-version-capability'

The value of "uname -s" is by default sent over the wire as a part
of the "version" capability.

* ua/os-version-capability:
  agent: advertise OS name via agent capability
  t5701: add setup test to remove side-effect dependency
  version: extend get_uname_info() to hide system details
  version: refactor get_uname_info()
  version: refactor redact_non_printables()
  version: replace manual ASCII checks with isprint() for clarity
This commit is contained in:
Junio C Hamano
2025-02-27 15:22:59 -08:00
7 changed files with 115 additions and 23 deletions

View File

@ -184,9 +184,13 @@ form `agent=X`) to notify the client that the server is running version
the `agent` capability with a value `Y` (in the form `agent=Y`) in its
request to the server (but it MUST NOT do so if the server did not
advertise the agent capability). The `X` and `Y` strings may contain any
printable ASCII characters except space (i.e., the byte range 32 < x <
127), and are typically of the form "package/version" (e.g.,
"git/1.8.3.1"). The agent strings are purely informative for statistics
printable ASCII characters except space (i.e., the byte range 33 <= x <=
126), and are typically of the form "package/version-os" (e.g.,
"git/1.8.3.1-Linux") where `os` is the operating system name (e.g.,
"Linux"). `X` and `Y` can be configured using the GIT_USER_AGENT
environment variable and it takes priority. The `os` is
retrieved using the 'sysname' field of the `uname(2)` system call
or its equivalent. The agent strings are purely informative for statistics
and debugging purposes, and MUST NOT be used to programmatically assume
the presence or absence of particular features.