@@ -389,6 +389,10 @@ all::
389
389
# Define GIT_USER_AGENT if you want to change how git identifies itself during
390
390
# network interactions. The default is "git/$(GIT_VERSION)".
391
391
#
392
+ # Define GIT_BUILT_FROM_COMMIT if you want to force the commit hash identified
393
+ # in 'git version --build-options' to a specific value. The default is the
394
+ # commit hash of the current HEAD.
395
+ #
392
396
# Define DEFAULT_HELP_FORMAT to "man", "info" or "html"
393
397
# (defaults to "man") if you want to have a different default when
394
398
# "git help" is called without a parameter specifying the format.
@@ -2155,6 +2159,15 @@ GIT-USER-AGENT: FORCE
2155
2159
echo ' $(GIT_USER_AGENT_SQ)' > GIT-USER-AGENT; \
2156
2160
fi
2157
2161
2162
+ GIT_BUILT_FROM_COMMIT = $(eval GIT_BUILT_FROM_COMMIT := $$(shell \
2163
+ GIT_CEILING_DIRECTORIES="$$(CURDIR ) /.." \
2164
+ git rev-parse -q --verify HEAD 2>/dev/null) )$(GIT_BUILT_FROM_COMMIT )
2165
+ GIT-BUILT-FROM-COMMIT : FORCE
2166
+ @if test x' $(GIT_BUILT_FROM_COMMIT)' ! = x" ` cat GIT-BUILT-FROM-COMMIT 2> /dev/null` " ; then \
2167
+ echo >&2 " * new built-from commit" ; \
2168
+ echo ' $(GIT_BUILT_FROM_COMMIT)' > GIT-BUILT-FROM-COMMIT; \
2169
+ fi
2170
+
2158
2171
ifdef DEFAULT_HELP_FORMAT
2159
2172
BASIC_CFLAGS += -DDEFAULT_HELP_FORMAT='"$(DEFAULT_HELP_FORMAT ) "'
2160
2173
endif
@@ -2279,13 +2292,11 @@ PAGER_ENV_CQ_SQ = $(subst ','\'',$(PAGER_ENV_CQ))
2279
2292
pager.sp pager.s pager.o : EXTRA_CPPFLAGS = \
2280
2293
-DPAGER_ENV=' $(PAGER_ENV_CQ_SQ)'
2281
2294
2282
- version.sp version.s version.o : GIT-VERSION-FILE GIT-USER-AGENT
2295
+ version.sp version.s version.o : GIT-VERSION-FILE GIT-USER-AGENT GIT-BUILT-FROM-COMMIT
2283
2296
version.sp version.s version.o : EXTRA_CPPFLAGS = \
2284
2297
' -DGIT_VERSION="$(GIT_VERSION)"' \
2285
2298
' -DGIT_USER_AGENT=$(GIT_USER_AGENT_CQ_SQ)' \
2286
- ' -DGIT_BUILT_FROM_COMMIT="$(shell \
2287
- GIT_CEILING_DIRECTORIES=" $( CURDIR) /.." \
2288
- git rev-parse -q --verify HEAD 2> /dev/null)" '
2299
+ ' -DGIT_BUILT_FROM_COMMIT="$(GIT_BUILT_FROM_COMMIT)"'
2289
2300
2290
2301
$(BUILT_INS ) : git$X
2291
2302
$(QUIET_BUILT_IN )$(RM ) $@ && \
@@ -3307,7 +3318,7 @@ dist: git-archive$(X) configure
3307
3318
@$(MAKE ) -C git-gui TARDIR=../.dist-tmp-dir/git-gui dist-version
3308
3319
./git-archive --format=tar \
3309
3320
$(GIT_ARCHIVE_EXTRA_FILES ) \
3310
- --prefix=$(GIT_TARNAME ) / HEAD^{tree} > $(GIT_TARNAME ) .tar
3321
+ --prefix=$(GIT_TARNAME ) / HEAD > $(GIT_TARNAME ) .tar
3311
3322
@$(RM ) -r .dist-tmp-dir
3312
3323
gzip -f -9 $(GIT_TARNAME ) .tar
3313
3324
0 commit comments