Skip to content

Commit

Permalink
docs: Update install-doc-quick
Browse files Browse the repository at this point in the history
The preformatted documentation pages live in their own repositories
these days. Adjust the installation procedure to the updated layout.

Tested-by: Stefan Naewe <stefan.naewe@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Nov 8, 2011
1 parent 939ca96 commit fcbebfd
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 50 deletions.
23 changes: 17 additions & 6 deletions Documentation/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ MANPAGE_XSL = manpage-normal.xsl
XMLTO_EXTRA =
INSTALL?=install
RM ?= rm -f
DOC_REF = origin/man
HTML_REF = origin/html
MAN_REPO = ../../git-manpages
HTML_REPO = ../../git-htmldocs

infodir?=$(prefix)/share/info
MAKEINFO=makeinfo
Expand Down Expand Up @@ -327,12 +327,23 @@ $(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
install-webdoc : html
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)

# You must have a clone of git-htmldocs and git-manpages repositories
# next to the git repository itself for the following to work.

quick-install: quick-install-man

quick-install-man:
'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(DOC_REF) $(DESTDIR)$(mandir)
require-manrepo::
@if test ! -d $(MAN_REPO); \
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)

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

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

.PHONY: FORCE
44 changes: 26 additions & 18 deletions Documentation/install-doc-quick.sh
Original file line number Diff line number Diff line change
@@ -1,31 +1,39 @@
#!/bin/sh
# This requires a branch named in $head
# (usually 'man' or 'html', provided by the git.git repository)
set -e
head="$1"
mandir="$2"
SUBDIRECTORY_OK=t
USAGE='<refname> <target directory>'
. "$(git --exec-path)"/git-sh-setup
cd_to_toplevel
# This requires git-manpages and/or git-htmldocs repositories

test -z "$mandir" && usage
if ! git rev-parse --verify "$head^0" >/dev/null; then
echo >&2 "head: $head does not exist in the current repository"
usage
repository=${1?repository}
destdir=${2?destination}

head=master GIT_DIR=
for d in "$repository/.git" "$repository"
do
if GIT_DIR="$d" git rev-parse refs/heads/master >/dev/null 2>&1
then
GIT_DIR="$d"
export GIT_DIR
break
fi
done

if test -z "$GIT_DIR"
then
echo >&2 "Neither $repository nor $repository/.git is a repository"
exit 1
fi

GIT_INDEX_FILE=`pwd`/.quick-doc.index
export GIT_INDEX_FILE
GIT_WORK_TREE=$(pwd)
GIT_INDEX_FILE=$(pwd)/.quick-doc.$$
export GIT_INDEX_FILE GIT_WORK_TREE
rm -f "$GIT_INDEX_FILE"
trap 'rm -f "$GIT_INDEX_FILE"' 0

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

if test -n "$GZ"; then
if test -n "$GZ"
then
git ls-tree -r --name-only $head |
xargs printf "$mandir/%s\n" |
xargs printf "$destdir/%s\n" |
xargs gzip -f
fi
rm -f "$GIT_INDEX_FILE"
29 changes: 3 additions & 26 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -139,34 +139,11 @@ Issues of note:
uses some compatibility wrappers to work on AsciiDoc 8. If you have
AsciiDoc 7, try "make ASCIIDOC7=YesPlease".

Alternatively, pre-formatted documentation is available in
"html" and "man" branches of the git repository itself. For
example, you could:

$ mkdir manual && cd manual
$ git init
$ git fetch-pack git://git.kernel.org/pub/scm/git/git.git man html |
while read a b
do
echo $a >.git/$b
done
$ cp .git/refs/heads/man .git/refs/heads/master
$ git checkout

to checkout the pre-built man pages. Also in this repository:

$ git checkout html

would instead give you a copy of what you see at:

http://www.kernel.org/pub/software/scm/git/docs/

There are also "make quick-install-doc", "make quick-install-man"
and "make quick-install-html" which install preformatted man pages
and html documentation.
This does not require asciidoc/xmlto, but it only works from within
a cloned checkout of git.git with these two extra branches, and will
not work for the maintainer for obvious chicken-and-egg reasons.
and html documentation. To use these build targets, you need to
clone two separate git-htmldocs and git-manpages repositories next
to the clone of git itself.

It has been reported that docbook-xsl version 1.72 and 1.73 are
buggy; 1.72 misformats manual pages for callouts, and 1.73 needs
Expand Down

0 comments on commit fcbebfd

Please sign in to comment.