Re: [PATCH v4 03/15] bugreport: gather git version and build info
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Dec 17, 2019, 18:45 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1912171941451.46@tvgsbejvaqbjf.bet>
- In-Reply-To
- <20191213004312.169753-4-emilyshaffer@google.com>
Hi Emily,
On Thu, 12 Dec 2019, Emily Shaffer wrote:
Show 26 quoted lines
> diff --git a/help.c b/help.c
> index a21487db77..a43693fca5 100644
> --- a/help.c
> +++ b/help.c
> @@ -622,8 +622,33 @@ const char *help_unknown_cmd(const char *cmd)
> exit(1);
> }
>
> +void list_version_info(struct strbuf *buf, int build_options)
> +{
> + strbuf_reset(buf);
> + /*
> + * The format of this string should be kept stable for compatibility
> + * with external projects that rely on the output of "git version".
> + *
> + * Always show the version, even if other options are given.
> + */
> + strbuf_addf(buf, "git version %s\n", git_version_string);
> +
> + if (build_options) {
> + strbuf_addf(buf, "cpu: %s\n", GIT_HOST_CPU);
> + if (git_built_from_commit_string[0])
> + strbuf_addf(buf, "built from commit: %s\n",
> + git_built_from_commit_string);
> + else
> + strbuf_addf(buf, "no commit associated with this build\n");The "StaticAnalysis" job of the Azure Pipeline is not happy with this, claiming that this should be an `strbuf_addstr()` call instead. For details, see:
https://dev.azure.com/gitgitgadget/8fc4a374-71dc-4558-a5ea-dd1c081ea621/_apis/build/builds/23830/logs/68
Ciao, Dscho
Show 57 quoted lines
> + strbuf_addf(buf, "sizeof-long: %d\n", (int)sizeof(long));
> + strbuf_addf(buf, "sizeof-size_t: %d\n", (int)sizeof(size_t));
> + /* NEEDSWORK: also save and output GIT-BUILD_OPTIONS? */
> + }
> +}
> +
> int cmd_version(int argc, const char **argv, const char *prefix)
> {
> + struct strbuf buf = STRBUF_INIT;
> int build_options = 0;
> const char * const usage[] = {
> N_("git version [<options>]"),
> @@ -637,25 +662,9 @@ int cmd_version(int argc, const char **argv, const char *prefix)
>
> argc = parse_options(argc, argv, prefix, options, usage, 0);
>
> - /*
> - * The format of this string should be kept stable for compatibility
> - * with external projects that rely on the output of "git version".
> - *
> - * Always show the version, even if other options are given.
> - */
> - printf("git version %s\n", git_version_string);
> + list_version_info(&buf, build_options);
> + printf("%s", buf.buf);
>
> - if (build_options) {
> - printf("cpu: %s\n", GIT_HOST_CPU);
> - if (git_built_from_commit_string[0])
> - printf("built from commit: %s\n",
> - git_built_from_commit_string);
> - else
> - printf("no commit associated with this build\n");
> - printf("sizeof-long: %d\n", (int)sizeof(long));
> - printf("sizeof-size_t: %d\n", (int)sizeof(size_t));
> - /* NEEDSWORK: also save and output GIT-BUILD_OPTIONS? */
> - }
> return 0;
> }
>
> diff --git a/help.h b/help.h
> index 9071894e8c..54f6b5f793 100644
> --- a/help.h
> +++ b/help.h
> @@ -37,6 +37,7 @@ void add_cmdname(struct cmdnames *cmds, const char *name, int len);
> void exclude_cmds(struct cmdnames *cmds, struct cmdnames *excludes);
> int is_in_cmdlist(struct cmdnames *cmds, const char *name);
> void list_commands(unsigned int colopts, struct cmdnames *main_cmds, struct cmdnames *other_cmds);
> +void list_version_info(struct strbuf *buf, int build_options);
>
> /*
> * call this to die(), when it is suspected that the user mistyped a
> --
> 2.24.1.735.g03f4e72817-goog
>
>
>