@@ -398,6 +398,10 @@ include shared.mak
398398# Define GIT_USER_AGENT if you want to change how git identifies itself during
399399# network interactions. The default is "git/$(GIT_VERSION)".
400400#
401+ # Define GIT_BUILT_FROM_COMMIT if you want to force the commit hash identified
402+ # in 'git version --build-options' to a specific value. The default is the
403+ # commit hash of the current HEAD.
404+ #
401405# Define DEFAULT_HELP_FORMAT to "man", "info" or "html"
402406# (defaults to "man") if you want to have a different default when
403407# "git help" is called without a parameter specifying the format.
@@ -2177,6 +2181,15 @@ GIT-USER-AGENT: FORCE
21772181 echo ' $(GIT_USER_AGENT_SQ)' > GIT-USER-AGENT; \
21782182 fi
21792183
2184+ GIT_BUILT_FROM_COMMIT = $(eval GIT_BUILT_FROM_COMMIT := $$(shell \
2185+ GIT_CEILING_DIRECTORIES="$$(CURDIR ) /.." \
2186+ git rev-parse -q --verify HEAD 2>/dev/null) )$(GIT_BUILT_FROM_COMMIT )
2187+ GIT-BUILT-FROM-COMMIT : FORCE
2188+ @if test x' $(GIT_BUILT_FROM_COMMIT)' ! = x" ` cat GIT-BUILT-FROM-COMMIT 2> /dev/null` " ; then \
2189+ echo >&2 " * new built-from commit" ; \
2190+ echo ' $(GIT_BUILT_FROM_COMMIT)' > GIT-BUILT-FROM-COMMIT; \
2191+ fi
2192+
21802193ifdef DEFAULT_HELP_FORMAT
21812194BASIC_CFLAGS += -DDEFAULT_HELP_FORMAT='"$(DEFAULT_HELP_FORMAT ) "'
21822195endif
@@ -2291,13 +2304,11 @@ PAGER_ENV_CQ_SQ = $(subst ','\'',$(PAGER_ENV_CQ))
22912304pager.sp pager.s pager.o : EXTRA_CPPFLAGS = \
22922305 -DPAGER_ENV=' $(PAGER_ENV_CQ_SQ)'
22932306
2294- version.sp version.s version.o : GIT-VERSION-FILE GIT-USER-AGENT
2307+ version.sp version.s version.o : GIT-VERSION-FILE GIT-USER-AGENT GIT-BUILT-FROM-COMMIT
22952308version.sp version.s version.o : EXTRA_CPPFLAGS = \
22962309 ' -DGIT_VERSION="$(GIT_VERSION)"' \
22972310 ' -DGIT_USER_AGENT=$(GIT_USER_AGENT_CQ_SQ)' \
2298- ' -DGIT_BUILT_FROM_COMMIT="$(shell \
2299- GIT_CEILING_DIRECTORIES=" $( CURDIR) /.." \
2300- git rev-parse -q --verify HEAD 2> /dev/null)" '
2311+ ' -DGIT_BUILT_FROM_COMMIT="$(GIT_BUILT_FROM_COMMIT)"'
23012312
23022313$(BUILT_INS ) : git$X
23032314 $(QUIET_BUILT_IN )$(RM ) $@ && \
@@ -3359,7 +3370,7 @@ dist: git-archive$(X) configure
33593370 @$(MAKE ) -C git-gui TARDIR=../.dist-tmp-dir/git-gui dist-version
33603371 ./git-archive --format=tar \
33613372 $(GIT_ARCHIVE_EXTRA_FILES ) \
3362- --prefix=$(GIT_TARNAME ) / HEAD^{tree} > $(GIT_TARNAME ) .tar
3373+ --prefix=$(GIT_TARNAME ) / HEAD > $(GIT_TARNAME ) .tar
33633374 @$(RM ) -r .dist-tmp-dir
33643375 gzip -f -9 $(GIT_TARNAME ) .tar
33653376
0 commit comments