From 914e503ce9978b715bb0c4e5a7b37119a1e1f125 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 9 Dec 2016 17:48:24 +0100 Subject: [PATCH] version --build-options: report commit, too, if possible In particular when local tags are used (or tags that are pushed to some fork) to build Git, it is very hard to figure out from which particular revision a particular Git executable was built. Let's just report that in our build options. We need to be careful, though, to report when the current commit cannot be determined, e.g. when building from a tarball without any associated Git repository. Signed-off-by: Johannes Schindelin --- Makefile | 4 +++- help.c | 2 ++ version.c | 1 + version.h | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f53fcc90d7..8e3ca3c561 100644 --- a/Makefile +++ b/Makefile @@ -1773,7 +1773,9 @@ builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \ version.sp version.s version.o: GIT-VERSION-FILE GIT-USER-AGENT version.sp version.s version.o: EXTRA_CPPFLAGS = \ '-DGIT_VERSION="$(GIT_VERSION)"' \ - '-DGIT_USER_AGENT=$(GIT_USER_AGENT_CQ_SQ)' + '-DGIT_USER_AGENT=$(GIT_USER_AGENT_CQ_SQ)' \ + '-DGIT_BUILT_FROM_COMMIT="$(shell git rev-parse -q --verify HEAD || \ + echo "(unknown)")"' $(BUILT_INS): git$X $(QUIET_BUILT_IN)$(RM) $@ && \ diff --git a/help.c b/help.c index a17ed4aef7..d6bc815003 100644 --- a/help.c +++ b/help.c @@ -418,6 +418,8 @@ int cmd_version(int argc, const char **argv, const char *prefix) printf("git version %s\n", git_version_string); while (*++argv) { if (!strcmp(*argv, "--build-options")) { + printf("built from commit: %s\n", + git_built_from_commit_string); printf("sizeof-long: %d\n", (int)sizeof(long)); printf("machine: %s\n", build_platform); /* NEEDSWORK: also save and output GIT-BUILD_OPTIONS? */ diff --git a/version.c b/version.c index 6106a8098c..41b718c29e 100644 --- a/version.c +++ b/version.c @@ -3,6 +3,7 @@ #include "strbuf.h" const char git_version_string[] = GIT_VERSION; +const char git_built_from_commit_string[] = GIT_BUILT_FROM_COMMIT; const char *git_user_agent(void) { diff --git a/version.h b/version.h index 6911a4f155..7c62e80577 100644 --- a/version.h +++ b/version.h @@ -2,6 +2,7 @@ #define VERSION_H extern const char git_version_string[]; +extern const char git_built_from_commit_string[]; const char *git_user_agent(void); const char *git_user_agent_sanitized(void);