@@ -402,6 +402,10 @@ include shared.mak
402402# Define GIT_USER_AGENT if you want to change how git identifies itself during
403403# network interactions. The default is "git/$(GIT_VERSION)".
404404#
405+ # Define GIT_BUILT_FROM_COMMIT if you want to force the commit hash identified
406+ # in 'git version --build-options' to a specific value. The default is the
407+ # commit hash of the current HEAD.
408+ #
405409# Define DEFAULT_HELP_FORMAT to "man", "info" or "html"
406410# (defaults to "man") if you want to have a different default when
407411# "git help" is called without a parameter specifying the format.
@@ -2231,6 +2235,15 @@ GIT-USER-AGENT: FORCE
22312235 echo ' $(GIT_USER_AGENT_SQ)' > GIT-USER-AGENT; \
22322236 fi
22332237
2238+ GIT_BUILT_FROM_COMMIT = $(eval GIT_BUILT_FROM_COMMIT := $$(shell \
2239+ GIT_CEILING_DIRECTORIES="$$(CURDIR ) /.." \
2240+ git rev-parse -q --verify HEAD 2>/dev/null) )$(GIT_BUILT_FROM_COMMIT )
2241+ GIT-BUILT-FROM-COMMIT : FORCE
2242+ @if test x' $(GIT_BUILT_FROM_COMMIT)' ! = x" ` cat GIT-BUILT-FROM-COMMIT 2> /dev/null` " ; then \
2243+ echo >&2 " * new built-from commit" ; \
2244+ echo ' $(GIT_BUILT_FROM_COMMIT)' > GIT-BUILT-FROM-COMMIT; \
2245+ fi
2246+
22342247ifdef DEFAULT_HELP_FORMAT
22352248BASIC_CFLAGS += -DDEFAULT_HELP_FORMAT='"$(DEFAULT_HELP_FORMAT ) "'
22362249endif
@@ -2345,13 +2358,11 @@ PAGER_ENV_CQ_SQ = $(subst ','\'',$(PAGER_ENV_CQ))
23452358pager.sp pager.s pager.o : EXTRA_CPPFLAGS = \
23462359 -DPAGER_ENV=' $(PAGER_ENV_CQ_SQ)'
23472360
2348- version.sp version.s version.o : GIT-VERSION-FILE GIT-USER-AGENT
2361+ version.sp version.s version.o : GIT-VERSION-FILE GIT-USER-AGENT GIT-BUILT-FROM-COMMIT
23492362version.sp version.s version.o : EXTRA_CPPFLAGS = \
23502363 ' -DGIT_VERSION="$(GIT_VERSION)"' \
23512364 ' -DGIT_USER_AGENT=$(GIT_USER_AGENT_CQ_SQ)' \
2352- ' -DGIT_BUILT_FROM_COMMIT="$(shell \
2353- GIT_CEILING_DIRECTORIES=" $( CURDIR) /.." \
2354- git rev-parse -q --verify HEAD 2> /dev/null)" '
2365+ ' -DGIT_BUILT_FROM_COMMIT="$(GIT_BUILT_FROM_COMMIT)"'
23552366
23562367$(BUILT_INS ) : git$X
23572368 $(QUIET_BUILT_IN )$(RM ) $@ && \
@@ -3436,7 +3447,7 @@ dist: git-archive$(X) configure
34363447 @$(MAKE ) -C git-gui TARDIR=../.dist-tmp-dir/git-gui dist-version
34373448 ./git-archive --format=tar \
34383449 $(GIT_ARCHIVE_EXTRA_FILES ) \
3439- --prefix=$(GIT_TARNAME ) / HEAD^{tree} > $(GIT_TARNAME ) .tar
3450+ --prefix=$(GIT_TARNAME ) / HEAD > $(GIT_TARNAME ) .tar
34403451 @$(RM ) -r .dist-tmp-dir
34413452 gzip -f -9 $(GIT_TARNAME ) .tar
34423453
0 commit comments