Merge branch 'ta/command-list-guides-sync-lint' into jch

A new linter test has been added to Documentation/lint-manpages.sh
to ensure that all non-command manual pages (guides and developer
interfaces) listed in Documentation/Makefile are present in
command-list.txt, replacing an older comment that reminded
developers to keep them in sync.

* ta/command-list-guides-sync-lint:
  lint-docs: check the guide list in command-list.txt
  command-list.txt: add gitformat-loose(5) and gitpacking(7)
Junio C Hamano 2026-09-17 12:54:18 -07:00
commit 61d2fe47d3
3 changed files with 11 additions and 3 deletions

View File

@ -67,6 +67,8 @@ MAN7_TXT += gittutorial-2.adoc
MAN7_TXT += gittutorial.adoc
MAN7_TXT += gitworkflows.adoc

MAN_GUIDES = $(patsubst %.adoc,%,$(MAN5_TXT) $(MAN7_TXT))

HOWTO_TXT += $(wildcard howto/*.adoc)

DOC_DEP_TXT += $(wildcard *.adoc)

View File

@ -1,21 +1,23 @@
#!/bin/sh

extract_variable () {
file=${2:-../Makefile}
directory=$(dirname "$file")
(
cat ../Makefile
cat "$file"
cat <<EOF
print_variable:
@\$(foreach b,\$($1),echo XXX \$(b:\$X=) YYY;)
EOF
) |
make -C .. -f - print_variable 2>/dev/null |
make -C "$directory" -f - print_variable 2>/dev/null |
sed -n -e 's/.*XXX \(.*\) YYY.*/\1/p'
}

check_missing_docs () (
ret=0

for v in $ALL_COMMANDS
for v in $ALL_COMMANDS $MAN_GUIDES
do
case "$v" in
git-merge-octopus) continue;;
@ -29,6 +31,7 @@ check_missing_docs () (
git-stage) continue;;
git-legacy-*) continue;;
git-?*--?* ) continue ;;
gitweb.conf) continue ;;
esac

if ! test -f "$v.adoc"
@ -87,6 +90,7 @@ check_extraneous_docs () {
BUILT_INS="$(extract_variable BUILT_INS)"
ALL_COMMANDS="$(extract_variable ALL_COMMANDS)"
EXCLUDED_PROGRAMS="$(extract_variable EXCLUDED_PROGRAMS)"
MAN_GUIDES="$(extract_variable MAN_GUIDES ./Makefile)"

findings=$(
if ! check_missing_docs

View File

@ -225,6 +225,7 @@ gitformat-bundle developerinterfaces
gitformat-chunk developerinterfaces
gitformat-commit-graph developerinterfaces
gitformat-index developerinterfaces
gitformat-loose developerinterfaces
gitformat-pack developerinterfaces
gitformat-signature developerinterfaces
gitglossary guide
@ -234,6 +235,7 @@ gitk mainporcelain
gitmailmap userinterfaces
gitmodules userinterfaces
gitnamespaces guide
gitpacking guide
gitprotocol-capabilities developerinterfaces
gitprotocol-common developerinterfaces
gitprotocol-http developerinterfaces