1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-28 04:36:10 +02:00

Merge branch 'jk/diff-rendered-docs'

Dev doc update.

* jk/diff-rendered-docs:
  Revert "doc/Makefile: drop doc-diff worktree and temporary files on "make clean""
  doc/Makefile: drop doc-diff worktree and temporary files on "make clean"
  doc-diff: add --clean mode to remove temporary working gunk
  doc-diff: fix non-portable 'man' invocation
  doc-diff: always use oids inside worktree
  SubmittingPatches: mention doc-diff
This commit is contained in:
Junio C Hamano 2018-09-17 13:53:59 -07:00
commit 98509d0f48
2 changed files with 32 additions and 9 deletions

View File

@ -80,7 +80,9 @@ GitHub-Travis CI hints section for details.
Do not forget to update the documentation to describe the updated
behavior and make sure that the resulting documentation set formats
well. It is currently a liberal mixture of US and UK English norms for
well (try the Documentation/doc-diff script).
We currently have a liberal mixture of US and UK English norms for
spelling and grammar, which is somewhat unfortunate. A huge patch that
touches the files all over the place only to correct the inconsistency
is not welcome, though. Potential clashes with other changes that can

View File

@ -1,21 +1,34 @@
#!/bin/sh
#
# Build two documentation trees and diff the resulting formatted output.
# Compared to a source diff, this can reveal mistakes in the formatting.
# For example:
#
# ./doc-diff origin/master HEAD
#
# would show the differences introduced by a branch based on master.
OPTIONS_SPEC="\
doc-diff [options] <from> <to> [-- <diff-options>]
doc-diff (-c|--clean)
--
j=n parallel argument to pass to make
f force rebuild; do not rely on cached results
c,clean cleanup temporary working files
"
SUBDIRECTORY_OK=1
. "$(git --exec-path)/git-sh-setup"
parallel=
force=
clean=
while test $# -gt 0
do
case "$1" in
-j)
parallel=$2; shift ;;
-c|--clean)
clean=t ;;
-f)
force=t ;;
--)
@ -26,6 +39,17 @@ do
shift
done
cd_to_toplevel
tmp=Documentation/tmp-doc-diff
if test -n "$clean"
then
test $# -eq 0 || usage
git worktree remove --force "$tmp/worktree" 2>/dev/null
rm -rf "$tmp"
exit 0
fi
if test -z "$parallel"
then
parallel=$(getconf _NPROCESSORS_ONLN 2>/dev/null)
@ -42,9 +66,6 @@ to=$1; shift
from_oid=$(git rev-parse --verify "$from") || exit 1
to_oid=$(git rev-parse --verify "$to") || exit 1
cd_to_toplevel
tmp=Documentation/tmp-doc-diff
if test -n "$force"
then
rm -rf "$tmp"
@ -69,12 +90,12 @@ generate_render_makefile () {
printf '%s: %s\n' "$dst" "$src"
printf '\t@echo >&2 " RENDER $(notdir $@)" && \\\n'
printf '\tmkdir -p $(dir $@) && \\\n'
printf '\tMANWIDTH=80 man -l $< >$@+ && \\\n'
printf '\tMANWIDTH=80 man $< >$@+ && \\\n'
printf '\tmv $@+ $@\n'
done
}
# render_tree <dirname> <committish>
# render_tree <committish_oid>
render_tree () {
# Skip install-man entirely if we already have an installed directory.
# We can't rely on make here, since "install-man" unconditionally
@ -84,7 +105,7 @@ render_tree () {
# through.
if ! test -d "$tmp/installed/$1"
then
git -C "$tmp/worktree" checkout "$2" &&
git -C "$tmp/worktree" checkout --detach "$1" &&
make -j$parallel -C "$tmp/worktree" \
GIT_VERSION=omitted \
SOURCE_DATE_EPOCH=0 \
@ -104,6 +125,6 @@ render_tree () {
fi
}
render_tree $from_oid "$from" &&
render_tree $to_oid "$to" &&
render_tree $from_oid &&
render_tree $to_oid &&
git -C $tmp/rendered diff --no-index "$@" $from_oid $to_oid