git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[Proposed] Externalize man/html ref for quick-install-man and quick-install-html

From
Randall S. Becker <rsbecker@nexbridge.com>
Date
Dec 9, 2017, 22:07 UTC
Message-ID
<000801d3713a$2f1259d0$8d370d70$@nexbridge.com>

I am proposing the following trivial change to allow the external specification of the reference used for quick-install-man. The justification is that I cannot have my production team modifying scripts when non-master versions of git are installed in production (that violates so many rules that I would have trouble enumerating). This does add any requirements for changes to the automation for building either git-manpages or git-htmldocs. What it does is allow the top level make to pass GIT_MAN_REF down to the underlying shell script with a default of master if unspecific. Where I am uncertain is what else would be required for this change (documentation, unit tests).

I humbly submit this for consideration. Sincerely, Randall

From 6acc4a4238b3e3e62674bf8a5d0b9084258a0967 Mon Sep 17 00:00:00 2001
From: "Randall S. Becker" <rsbecker@nexbridge.com>
Date: Sat, 9 Dec 2017 15:52:44 -0600
Subject: Externalize man/html ref for quick-install-man and
quick-install-html
---
 Documentation/Makefile             | 6 ++++--
 Documentation/install-doc-quick.sh | 7 ++++---
 2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 3e39e28..4f1e6df 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -39,6 +39,8 @@ MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
 MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))
 MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))

+GIT_MAN_REF = master
+
 OBSOLETE_HTML += everyday.html
 OBSOLETE_HTML += git-remote-helpers.html
 DOC_HTML = $(MAN_HTML) $(OBSOLETE_HTML)
@@ -415,14 +417,14 @@ require-manrepo::
        then echo "git-manpages repository must exist at $(MAN_REPO)"; exit
1; fi

 quick-install-man: require-manrepo
-       '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO)
$(DESTDIR)$(mandir)
+       '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO)
$(DESTDIR)$(mandir) $(GIT_MAN_REF)

 require-htmlrepo::
        @if test ! -d $(HTML_REPO); \
        then echo "git-htmldocs repository must exist at $(HTML_REPO)"; exit
1; fi

 quick-install-html: require-htmlrepo
-       '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REPO)
$(DESTDIR)$(htmldir)
+       '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REPO)
$(DESTDIR)$(htmldir) $(GIT_MAN_REF)

 print-man1:
        @for i in $(MAN1_TXT); do echo $$i; done
diff --git a/Documentation/install-doc-quick.sh
b/Documentation/install-doc-quick.sh
index 327f69b..a7715eb 100755
--- a/Documentation/install-doc-quick.sh
+++ b/Documentation/install-doc-quick.sh
@@ -4,7 +4,8 @@
 repository=${1?repository}
 destdir=${2?destination}

-head=master GIT_DIR=
+GIT_MAN_REF=${3?master}
+GIT_DIR=
 for d in "$repository/.git" "$repository"
 do
        if GIT_DIR="$d" git rev-parse refs/heads/master >/dev/null 2>&1
@@ -27,12 +28,12 @@ export GIT_INDEX_FILE GIT_WORK_TREE
 rm -f "$GIT_INDEX_FILE"
 trap 'rm -f "$GIT_INDEX_FILE"' 0

-git read-tree $head
+git read-tree $GIT_MAN_REF
 git checkout-index -a -f --prefix="$destdir"/

 if test -n "$GZ"
 then
-       git ls-tree -r --name-only $head |
+       git ls-tree -r --name-only $GIT_MAN_REF |
        xargs printf "$destdir/%s\n" |
        xargs gzip -f
 fi
--
2.5.6.18.ga013bef
Next: Junio C Hamano
Message 1 of 8 in “[Proposed] Externalize man/html ref for quick-install-man and quick-install-html”
  1. Randall S. BeckerDec 9, 2017
  2. Junio C HamanoDec 11, 2017
  3. Randall S. BeckerDec 12, 2017
  4. Jacob KellerDec 12, 2017
  5. Junio C HamanoDec 12, 2017
  6. Randall S. BeckerDec 12, 2017
  7. Junio C HamanoDec 12, 2017
  8. Randall S. BeckerDec 12, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.