* [PATCH 0/2] guides: keep Documentation/Makefile and command-list.txt in sync
@ 2026-09-09 5:24 Tuomas Ahola
2026-09-09 5:25 ` [PATCH 1/2] command-list: add gitformat-loose(5) and gitpacking(7) Tuomas Ahola
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Tuomas Ahola @ 2026-09-09 5:24 UTC (permalink / raw)
To: git; +Cc: Tuomas Ahola
Documentation/lint-manpages.sh was expanded with a new test
ensuring that command-list.txt also includes all non-command
manual pages (concept guides and interface manuals).
Based on kh/doc-datamodel.
Tuomas Ahola (2):
command-list: add gitformat-loose(5) and gitpacking(7)
lint-docs: check the guide list in command-list.txt
Documentation/Makefile | 2 ++
Documentation/lint-manpages.sh | 9 ++++++---
command-list.txt | 2 ++
3 files changed, 10 insertions(+), 3 deletions(-)
base-commit: e9019fcafe0040228b8631c30f97ae1adb61bcdc
prerequisite-patch-id: 13af80fdddfc7d4f65437343cee0ca3787cbdea4
--
ta/command-list-guides-sync-lint
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] command-list: add gitformat-loose(5) and gitpacking(7)
2026-09-09 5:24 [PATCH 0/2] guides: keep Documentation/Makefile and command-list.txt in sync Tuomas Ahola
@ 2026-09-09 5:25 ` Tuomas Ahola
2026-09-09 18:15 ` Junio C Hamano
2026-09-09 5:25 ` [PATCH 2/2] lint-docs: check the guide list in command-list.txt Tuomas Ahola
2026-09-10 19:43 ` [PATCH v2 0/2] guides: keep Documentation/Makefile and command-list.txt in sync Tuomas Ahola
2 siblings, 1 reply; 8+ messages in thread
From: Tuomas Ahola @ 2026-09-09 5:25 UTC (permalink / raw)
To: git; +Cc: Tuomas Ahola
Three manpages from sections 5 and 7 are not featured in
command-list.txt as concept guides or interface manuals.
As easy fixes, add gitformat-loose(5) to 'developerinterfaces'
and make gitpacking(7) a 'guide'.
That leaves only gitweb.conf(5) which could be added to
'userinterfaces'. However, the manual would then appear
as "web.conf" in `git help -a` which is just confusing.
So, perhaps we are better off by leaving it out.
Signed-off-by: Tuomas Ahola <taahol@utu.fi>
---
command-list.txt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/command-list.txt b/command-list.txt
index 63ae2a67c9..955eec6e7e 100644
--- a/command-list.txt
+++ b/command-list.txt
@@ -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
--
ta/command-list-guides-sync-lint
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] lint-docs: check the guide list in command-list.txt
2026-09-09 5:24 [PATCH 0/2] guides: keep Documentation/Makefile and command-list.txt in sync Tuomas Ahola
2026-09-09 5:25 ` [PATCH 1/2] command-list: add gitformat-loose(5) and gitpacking(7) Tuomas Ahola
@ 2026-09-09 5:25 ` Tuomas Ahola
2026-09-09 18:15 ` Junio C Hamano
2026-09-10 19:43 ` [PATCH v2 0/2] guides: keep Documentation/Makefile and command-list.txt in sync Tuomas Ahola
2 siblings, 1 reply; 8+ messages in thread
From: Tuomas Ahola @ 2026-09-09 5:25 UTC (permalink / raw)
To: git; +Cc: Tuomas Ahola
Since 2135e1ad70 (command-list.txt: add missing 'gitcredentials' and
'gitremote-helpers', 2020-08-05) there has been a comment in
Documentation/Makefile reminding developers to add new guides also to
command-list.txt. However, there is no linter script to enforce that.
Adapt Documentation/lint-manpages.sh to fill that role. Extract
MAN5_TXT and MAN7_TXT from the Makefile and check command-list.txt
against them. Exempt gitweb.conf(5) from the new linter routine.
Signed-off-by: Tuomas Ahola <taahol@utu.fi>
---
Notes:
c655855559 (doc: git: list gitdatamodel(7) as a concept guide, 2026-09-05)
should be merged in to make the new test pass.
Documentation/Makefile | 2 ++
Documentation/lint-manpages.sh | 9 ++++++---
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 2699f0b24a..203f6a0c31 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -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)
diff --git a/Documentation/lint-manpages.sh b/Documentation/lint-manpages.sh
index a0ea572382..290ebe0947 100755
--- a/Documentation/lint-manpages.sh
+++ b/Documentation/lint-manpages.sh
@@ -1,21 +1,22 @@
#!/bin/sh
extract_variable () {
+ file=${2:-../Makefile}
(
- 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 $(dirname $file) -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 +30,7 @@ check_missing_docs () (
git-stage) continue;;
git-legacy-*) continue;;
git-?*--?* ) continue ;;
+ gitweb.conf) continue ;;
esac
if ! test -f "$v.adoc"
@@ -87,6 +89,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
--
ta/command-list-guides-sync-lint
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] lint-docs: check the guide list in command-list.txt
2026-09-09 5:25 ` [PATCH 2/2] lint-docs: check the guide list in command-list.txt Tuomas Ahola
@ 2026-09-09 18:15 ` Junio C Hamano
0 siblings, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2026-09-09 18:15 UTC (permalink / raw)
To: Tuomas Ahola; +Cc: git
Tuomas Ahola <taahol@utu.fi> writes:
> extract_variable () {
> + file=${2:-../Makefile}
> (
> - cat ../Makefile
> + cat $file
Now you are allowing arbitrary path to be fed to this function, you
should prepare to accept arbitrary path, without assuming that $file
has no $IFS whitespaces. I.e.,
cat "$file"
> ) |
> - make -C .. -f - print_variable 2>/dev/null |
> + make -C $(dirname $file) -f - print_variable 2>/dev/null |
Ditto. $file itself may have $IFS whitespaces, and the result of
running dirname on it may too.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] command-list: add gitformat-loose(5) and gitpacking(7)
2026-09-09 5:25 ` [PATCH 1/2] command-list: add gitformat-loose(5) and gitpacking(7) Tuomas Ahola
@ 2026-09-09 18:15 ` Junio C Hamano
0 siblings, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2026-09-09 18:15 UTC (permalink / raw)
To: Tuomas Ahola; +Cc: git
Tuomas Ahola <taahol@utu.fi> writes:
> Three manpages from sections 5 and 7 are not featured in
> command-list.txt as concept guides or interface manuals.
>
> As easy fixes, add gitformat-loose(5) to 'developerinterfaces'
> and make gitpacking(7) a 'guide'.
>
> That leaves only gitweb.conf(5) which could be added to
> 'userinterfaces'. However, the manual would then appear
> as "web.conf" in `git help -a` which is just confusing.
> So, perhaps we are better off by leaving it out.
>
> Signed-off-by: Tuomas Ahola <taahol@utu.fi>
> ---
> command-list.txt | 2 ++
> 1 file changed, 2 insertions(+)
Good eyes. Thanks.
>
> diff --git a/command-list.txt b/command-list.txt
> index 63ae2a67c9..955eec6e7e 100644
> --- a/command-list.txt
> +++ b/command-list.txt
> @@ -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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 0/2] guides: keep Documentation/Makefile and command-list.txt in sync
2026-09-09 5:24 [PATCH 0/2] guides: keep Documentation/Makefile and command-list.txt in sync Tuomas Ahola
2026-09-09 5:25 ` [PATCH 1/2] command-list: add gitformat-loose(5) and gitpacking(7) Tuomas Ahola
2026-09-09 5:25 ` [PATCH 2/2] lint-docs: check the guide list in command-list.txt Tuomas Ahola
@ 2026-09-10 19:43 ` Tuomas Ahola
2026-09-10 19:43 ` [PATCH v2 1/2] command-list.txt: add gitformat-loose(5) and gitpacking(7) Tuomas Ahola
2026-09-10 19:43 ` [PATCH v2 2/2] lint-docs: check the guide list in command-list.txt Tuomas Ahola
2 siblings, 2 replies; 8+ messages in thread
From: Tuomas Ahola @ 2026-09-10 19:43 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano, Tuomas Ahola
Documentation/lint-manpages.sh was expanded with a new test
ensuring that command-list.txt also includes all non-command
manual pages (concept guides and interface manuals).
Based on kh/doc-datamodel.
Changes in v2:
* [1/2]: Use command-list.txt as the area identifier.
* [2/2]: Protect variables againtst whitespace breakage per review comment.
Tuomas Ahola (2):
command-list.txt: add gitformat-loose(5) and gitpacking(7)
lint-docs: check the guide list in command-list.txt
Documentation/Makefile | 2 ++
Documentation/lint-manpages.sh | 10 +++++++---
command-list.txt | 2 ++
3 files changed, 11 insertions(+), 3 deletions(-)
Intervall-diff mot v1:
1: 014da7fdff ! 1: cb6ce6cad1 command-list: add gitformat-loose(5) and gitpacking(7)
@@ Metadata
Author: Tuomas Ahola <taahol@utu.fi>
## Commit message ##
- command-list: add gitformat-loose(5) and gitpacking(7)
+ command-list.txt: add gitformat-loose(5) and gitpacking(7)
Three manpages from sections 5 and 7 are not featured in
command-list.txt as concept guides or interface manuals.
2: b24d96f732 ! 2: 2dc1ee4514 lint-docs: check the guide list in command-list.txt
@@ Documentation/lint-manpages.sh
extract_variable () {
+ file=${2:-../Makefile}
++ directory=$(dirname "$file")
(
- cat ../Makefile
-+ cat $file
++ 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 $(dirname $file) -f - print_variable 2>/dev/null |
++ make -C "$directory" -f - print_variable 2>/dev/null |
sed -n -e 's/.*XXX \(.*\) YYY.*/\1/p'
}
base-commit: b8242b093d9e941a34460d715e3ce616a34ac3fe
--
ta/command-list-guides-sync-lint
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/2] command-list.txt: add gitformat-loose(5) and gitpacking(7)
2026-09-10 19:43 ` [PATCH v2 0/2] guides: keep Documentation/Makefile and command-list.txt in sync Tuomas Ahola
@ 2026-09-10 19:43 ` Tuomas Ahola
2026-09-10 19:43 ` [PATCH v2 2/2] lint-docs: check the guide list in command-list.txt Tuomas Ahola
1 sibling, 0 replies; 8+ messages in thread
From: Tuomas Ahola @ 2026-09-10 19:43 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano, Tuomas Ahola
Three manpages from sections 5 and 7 are not featured in
command-list.txt as concept guides or interface manuals.
As easy fixes, add gitformat-loose(5) to 'developerinterfaces'
and make gitpacking(7) a 'guide'.
That leaves only gitweb.conf(5) which could be added to
'userinterfaces'. However, the manual would then appear
as "web.conf" in `git help -a` which is just confusing.
So, perhaps we are better off by leaving it out.
Signed-off-by: Tuomas Ahola <taahol@utu.fi>
---
command-list.txt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/command-list.txt b/command-list.txt
index 21b802c420..6667930e8f 100644
--- a/command-list.txt
+++ b/command-list.txt
@@ -224,6 +224,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
@@ -233,6 +234,7 @@ gitk mainporcelain
gitmailmap userinterfaces
gitmodules userinterfaces
gitnamespaces guide
+gitpacking guide
gitprotocol-capabilities developerinterfaces
gitprotocol-common developerinterfaces
gitprotocol-http developerinterfaces
--
ta/command-list-guides-sync-lint
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/2] lint-docs: check the guide list in command-list.txt
2026-09-10 19:43 ` [PATCH v2 0/2] guides: keep Documentation/Makefile and command-list.txt in sync Tuomas Ahola
2026-09-10 19:43 ` [PATCH v2 1/2] command-list.txt: add gitformat-loose(5) and gitpacking(7) Tuomas Ahola
@ 2026-09-10 19:43 ` Tuomas Ahola
1 sibling, 0 replies; 8+ messages in thread
From: Tuomas Ahola @ 2026-09-10 19:43 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano, Tuomas Ahola
Since 2135e1ad70 (command-list.txt: add missing 'gitcredentials' and
'gitremote-helpers', 2020-08-05) there has been a comment in
Documentation/Makefile reminding developers to add new guides also to
command-list.txt. However, there is no linter script to enforce that.
Adapt Documentation/lint-manpages.sh to fill that role. Extract
MAN5_TXT and MAN7_TXT from the Makefile and check command-list.txt
against them. Exempt gitweb.conf(5) from the new linter routine.
Signed-off-by: Tuomas Ahola <taahol@utu.fi>
---
Notes:
c655855559 (doc: git: list gitdatamodel(7) as a concept guide, 2026-09-05)
should be merged in to make the new test pass.
Documentation/Makefile | 2 ++
Documentation/lint-manpages.sh | 10 +++++++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/Documentation/Makefile b/Documentation/Makefile
index f8dea4b395..8e28ac784b 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -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)
diff --git a/Documentation/lint-manpages.sh b/Documentation/lint-manpages.sh
index a0ea572382..d4a1977ba6 100755
--- a/Documentation/lint-manpages.sh
+++ b/Documentation/lint-manpages.sh
@@ -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
--
ta/command-list-guides-sync-lint
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-09-10 19:44 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-09 5:24 [PATCH 0/2] guides: keep Documentation/Makefile and command-list.txt in sync Tuomas Ahola
2026-09-09 5:25 ` [PATCH 1/2] command-list: add gitformat-loose(5) and gitpacking(7) Tuomas Ahola
2026-09-09 18:15 ` Junio C Hamano
2026-09-09 5:25 ` [PATCH 2/2] lint-docs: check the guide list in command-list.txt Tuomas Ahola
2026-09-09 18:15 ` Junio C Hamano
2026-09-10 19:43 ` [PATCH v2 0/2] guides: keep Documentation/Makefile and command-list.txt in sync Tuomas Ahola
2026-09-10 19:43 ` [PATCH v2 1/2] command-list.txt: add gitformat-loose(5) and gitpacking(7) Tuomas Ahola
2026-09-10 19:43 ` [PATCH v2 2/2] lint-docs: check the guide list in command-list.txt Tuomas Ahola
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox