threads / patch / 43943

patchmake dist: allow using an installed version of git

Subject: [PATCH] make dist: allow using an installed version of git

## tl;dr

3 messages between Aug 27, 2016 and Sep 1, 2016. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Dennis Kaarsemaker· Aug 27, 2016, 10:29 UTC · lore

b1de9de2 back in 2005 ensured that we could create a tarball with 'make dist' even if git wasn't installed yet. These days however, chances are higher that a git version is available. Add a config.mak knob to allow people to choose to use the installed version of git to create the tarball and avoid the overhead of building git-archive.

Signed-off-by: Dennis Kaarsemaker <dennis@kaarsemaker.net>
---
 Makefile | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
Show changes to Makefile +12 −2
diff --git a/Makefile b/Makefile
index d96ecb7..3dabb75 100644
--- a/Makefile
+++ b/Makefile
@@ -378,6 +378,9 @@ all::
 #
 # to say "export LESS=FRX (and LV=-c) if the environment variable
 # LESS (and LV) is not set, respectively".
+#
+# Define USE_INSTALLED_GIT_ARCHIVE if you don't want to build git-archive as
+# part of 'make dist', but are happy to rely on a git version on you $PATH
 
 GIT-VERSION-FILE: FORCE
 	@$(SHELL_PATH) ./GIT-VERSION-GEN
@@ -2423,8 +2426,15 @@ quick-install-html:
 ### Maintainer's dist rules
 
 GIT_TARNAME = git-$(GIT_VERSION)
-dist: git-archive$(X) configure
-	./git-archive --format=tar \
+ifndef USE_INSTALLED_GIT_ARCHIVE
+	GIT_ARCHIVE = ./git-archive$(X)
+	GIT_ARCHIVE_DEP = git-archive$(X)
+else
+	GIT_ARCHIVE = git archive
+	GIT_ARCHIVE_DEP =
+endif
+dist: $(GIT_ARCHIVE_DEP) configure
+	$(GIT_ARCHIVE) --format=tar \
 		--prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar
 	@mkdir -p $(GIT_TARNAME)
 	@cp configure $(GIT_TARNAME)
-- 
2.10.0-rc1-230-g8efea0f
Junio C Hamano· Sep 1, 2016, 17:43 UTC · re: Dennis Kaarsemaker · lore

Re: [PATCH] make dist: allow using an installed version of git

Dennis Kaarsemaker <dennis@kaarsemaker.net> writes:
Show 5 quoted lines
> b1de9de2 back in 2005 ensured that we could create a tarball with 'make
> dist' even if git wasn't installed yet. These days however, chances are
> higher that a git version is available. Add a config.mak knob to allow
> people to choose to use the installed version of git to create the
> tarball and avoid the overhead of building git-archive.
Thanks, but not interested.

We do not know what vintage of "git" happens to be installed on the platform, but we know how "git archive" we ship with the source ought to behave.

Show 38 quoted lines
>
> Signed-off-by: Dennis Kaarsemaker <dennis@kaarsemaker.net>
> ---
>  Makefile | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index d96ecb7..3dabb75 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -378,6 +378,9 @@ all::
>  #
>  # to say "export LESS=FRX (and LV=-c) if the environment variable
>  # LESS (and LV) is not set, respectively".
> +#
> +# Define USE_INSTALLED_GIT_ARCHIVE if you don't want to build git-archive as
> +# part of 'make dist', but are happy to rely on a git version on you $PATH
>  
>  GIT-VERSION-FILE: FORCE
>  	@$(SHELL_PATH) ./GIT-VERSION-GEN
> @@ -2423,8 +2426,15 @@ quick-install-html:
>  ### Maintainer's dist rules
>  
>  GIT_TARNAME = git-$(GIT_VERSION)
> -dist: git-archive$(X) configure
> -	./git-archive --format=tar \
> +ifndef USE_INSTALLED_GIT_ARCHIVE
> +	GIT_ARCHIVE = ./git-archive$(X)
> +	GIT_ARCHIVE_DEP = git-archive$(X)
> +else
> +	GIT_ARCHIVE = git archive
> +	GIT_ARCHIVE_DEP =
> +endif
> +dist: $(GIT_ARCHIVE_DEP) configure
> +	$(GIT_ARCHIVE) --format=tar \
>  		--prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar
>  	@mkdir -p $(GIT_TARNAME)
>  	@cp configure $(GIT_TARNAME)
Dennis Kaarsemaker· Sep 1, 2016, 20:34 UTC · re: Junio C Hamano · lore

Re: [PATCH] make dist: allow using an installed version of git

On do, 2016-09-01 at 10:43 -0700, Junio C Hamano wrote:
Show 9 quoted lines
> Dennis Kaarsemaker <dennis@kaarsemaker.net> writes:
> 
> > b1de9de2 back in 2005 ensured that we could create a tarball with 'make
> > dist' even if git wasn't installed yet. These days however, chances are
> > higher that a git version is available. Add a config.mak knob to allow
> > people to choose to use the installed version of git to create the
> > tarball and avoid the overhead of building git-archive.
> 
> Thanks, but not interested.
Pity. Would save me quite a bit of tarball build time.
> We do not know what vintage of "git" happens to be installed on the
> platform, but we know how "git archive" we ship with the source
> ought to behave.

That's why I didn't want to make it the default, but merely make it an available option for saving some build time for people who know their git is up-to-date enough.

D.

← back to recent threads