Skip to content

Commit 79d3066

Browse files
committed
Consolidate command list to one.
The categorized list of commands in git(7) and the list of common commands in "git help" output were maintained separately, which was insane. This consolidates them to a single command-list.txt file. Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent ca8c8c5 commit 79d3066

File tree

5 files changed

+141
-163
lines changed

5 files changed

+141
-163
lines changed

Documentation/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ cmds_txt = cmds-ancillaryinterrogators.txt \
122122

123123
$(cmds_txt): cmd-list.made
124124

125-
cmd-list.made: cmd-list.perl $(MAN1_TXT)
125+
cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
126126
$(RM) $@
127-
perl ./cmd-list.perl
127+
perl ./cmd-list.perl ../command-list.txt
128128
date >$@
129129

130130
git.7 git.html: git.txt

Documentation/cmd-list.perl

Lines changed: 5 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ sub format_one {
2828
}
2929
if (my ($verify_name, $text) = ($description =~ /^($name) - (.*)/)) {
3030
print $out "gitlink:$name\[1\]::\n\t";
31-
if ($attr) {
32-
print $out "($attr) ";
31+
if ($attr =~ / deprecated /) {
32+
print $out "(deprecated) ";
3333
}
3434
print $out "$text.\n\n";
3535
}
@@ -39,12 +39,13 @@ sub format_one {
3939
}
4040

4141
my %cmds = ();
42-
while (<DATA>) {
42+
for (sort <>) {
4343
next if /^#/;
4444

4545
chomp;
4646
my ($name, $cat, $attr) = /^(\S+)\s+(.*?)(?:\s+(.*))?$/;
47-
push @{$cmds{$cat}}, [$name, $attr];
47+
$attr = '' unless defined $attr;
48+
push @{$cmds{$cat}}, [$name, " $attr "];
4849
}
4950

5051
for my $cat (qw(ancillaryinterrogators
@@ -71,133 +72,3 @@ sub format_one {
7172
rename "$out+", "$out";
7273
}
7374
}
74-
75-
# The following list is sorted with "sort -d" to make it easier
76-
# to find entry in the resulting git.html manual page.
77-
__DATA__
78-
git-add mainporcelain
79-
git-am mainporcelain
80-
git-annotate ancillaryinterrogators
81-
git-apply plumbingmanipulators
82-
git-archimport foreignscminterface
83-
git-archive mainporcelain
84-
git-bisect mainporcelain
85-
git-blame ancillaryinterrogators
86-
git-branch mainporcelain
87-
git-bundle mainporcelain
88-
git-cat-file plumbinginterrogators
89-
git-check-attr purehelpers
90-
git-checkout mainporcelain
91-
git-checkout-index plumbingmanipulators
92-
git-check-ref-format purehelpers
93-
git-cherry ancillaryinterrogators
94-
git-cherry-pick mainporcelain
95-
git-citool mainporcelain
96-
git-clean mainporcelain
97-
git-clone mainporcelain
98-
git-commit mainporcelain
99-
git-commit-tree plumbingmanipulators
100-
git-config ancillarymanipulators
101-
git-count-objects ancillaryinterrogators
102-
git-cvsexportcommit foreignscminterface
103-
git-cvsimport foreignscminterface
104-
git-cvsserver foreignscminterface
105-
git-daemon synchingrepositories
106-
git-describe mainporcelain
107-
git-diff mainporcelain
108-
git-diff-files plumbinginterrogators
109-
git-diff-index plumbinginterrogators
110-
git-diff-tree plumbinginterrogators
111-
git-fast-import ancillarymanipulators
112-
git-fetch mainporcelain
113-
git-fetch-pack synchingrepositories
114-
git-filter-branch ancillarymanipulators
115-
git-fmt-merge-msg purehelpers
116-
git-for-each-ref plumbinginterrogators
117-
git-format-patch mainporcelain
118-
git-fsck ancillaryinterrogators
119-
git-gc mainporcelain
120-
git-get-tar-commit-id ancillaryinterrogators
121-
git-grep mainporcelain
122-
git-gui mainporcelain
123-
git-hash-object plumbingmanipulators
124-
git-http-fetch synchelpers
125-
git-http-push synchelpers
126-
git-imap-send foreignscminterface
127-
git-index-pack plumbingmanipulators
128-
git-init mainporcelain
129-
git-instaweb ancillaryinterrogators
130-
gitk mainporcelain
131-
git-log mainporcelain
132-
git-lost-found ancillarymanipulators deprecated
133-
git-ls-files plumbinginterrogators
134-
git-ls-remote plumbinginterrogators
135-
git-ls-tree plumbinginterrogators
136-
git-mailinfo purehelpers
137-
git-mailsplit purehelpers
138-
git-merge mainporcelain
139-
git-merge-base plumbinginterrogators
140-
git-merge-file plumbingmanipulators
141-
git-merge-index plumbingmanipulators
142-
git-merge-one-file purehelpers
143-
git-mergetool ancillarymanipulators
144-
git-merge-tree ancillaryinterrogators
145-
git-mktag plumbingmanipulators
146-
git-mktree plumbingmanipulators
147-
git-mv mainporcelain
148-
git-name-rev plumbinginterrogators
149-
git-pack-objects plumbingmanipulators
150-
git-pack-redundant plumbinginterrogators
151-
git-pack-refs ancillarymanipulators
152-
git-parse-remote synchelpers
153-
git-patch-id purehelpers
154-
git-peek-remote purehelpers deprecated
155-
git-prune ancillarymanipulators
156-
git-prune-packed plumbingmanipulators
157-
git-pull mainporcelain
158-
git-push mainporcelain
159-
git-quiltimport foreignscminterface
160-
git-read-tree plumbingmanipulators
161-
git-rebase mainporcelain
162-
git-receive-pack synchelpers
163-
git-reflog ancillarymanipulators
164-
git-relink ancillarymanipulators
165-
git-remote ancillarymanipulators
166-
git-repack ancillarymanipulators
167-
git-request-pull foreignscminterface
168-
git-rerere ancillaryinterrogators
169-
git-reset mainporcelain
170-
git-revert mainporcelain
171-
git-rev-list plumbinginterrogators
172-
git-rev-parse ancillaryinterrogators
173-
git-rm mainporcelain
174-
git-runstatus ancillaryinterrogators
175-
git-send-email foreignscminterface
176-
git-send-pack synchingrepositories
177-
git-shell synchelpers
178-
git-shortlog mainporcelain
179-
git-show mainporcelain
180-
git-show-branch ancillaryinterrogators
181-
git-show-index plumbinginterrogators
182-
git-show-ref plumbinginterrogators
183-
git-sh-setup purehelpers
184-
git-stash mainporcelain
185-
git-status mainporcelain
186-
git-stripspace purehelpers
187-
git-submodule mainporcelain
188-
git-svn foreignscminterface
189-
git-symbolic-ref plumbingmanipulators
190-
git-tag mainporcelain
191-
git-tar-tree plumbinginterrogators deprecated
192-
git-unpack-file plumbinginterrogators
193-
git-unpack-objects plumbingmanipulators
194-
git-update-index plumbingmanipulators
195-
git-update-ref plumbingmanipulators
196-
git-update-server-info synchingrepositories
197-
git-upload-archive synchelpers
198-
git-upload-pack synchelpers
199-
git-var plumbinginterrogators
200-
git-verify-pack plumbinginterrogators
201-
git-verify-tag ancillaryinterrogators
202-
git-whatchanged ancillaryinterrogators
203-
git-write-tree plumbingmanipulators

Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -796,7 +796,7 @@ git-merge-subtree$X: git-merge-recursive$X
796796
$(BUILT_INS): git$X
797797
$(QUIET_BUILT_IN)$(RM) $@ && ln git$X $@
798798

799-
common-cmds.h: ./generate-cmdlist.sh
799+
common-cmds.h: ./generate-cmdlist.sh command-list.txt
800800

801801
common-cmds.h: $(wildcard Documentation/git-*.txt)
802802
$(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@
@@ -1138,17 +1138,17 @@ check-docs::
11381138
esac ; \
11391139
test -f "Documentation/$$v.txt" || \
11401140
echo "no doc: $$v"; \
1141-
sed -e '1,/^__DATA__/d' Documentation/cmd-list.perl | \
1141+
sed -e '/^#/d' command-list.txt | \
11421142
grep -q "^$$v[ ]" || \
11431143
case "$$v" in \
11441144
git) ;; \
11451145
*) echo "no link: $$v";; \
11461146
esac ; \
11471147
done; \
11481148
( \
1149-
sed -e '1,/^__DATA__/d' \
1149+
sed -e '/^#/d' \
11501150
-e 's/[ ].*//' \
1151-
-e 's/^/listed /' Documentation/cmd-list.perl; \
1151+
-e 's/^/listed /' command-list.txt; \
11521152
ls -1 Documentation/git*txt | \
11531153
sed -e 's|Documentation/|documented |' \
11541154
-e 's/\.txt//'; \

command-list.txt

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# List of known git commands.
2+
# command name category [deprecated] [common]
3+
git-add mainporcelain common
4+
git-am mainporcelain
5+
git-annotate ancillaryinterrogators
6+
git-apply plumbingmanipulators
7+
git-archimport foreignscminterface
8+
git-archive mainporcelain
9+
git-bisect mainporcelain common
10+
git-blame ancillaryinterrogators
11+
git-branch mainporcelain common
12+
git-bundle mainporcelain
13+
git-cat-file plumbinginterrogators
14+
git-check-attr purehelpers
15+
git-checkout mainporcelain common
16+
git-checkout-index plumbingmanipulators
17+
git-check-ref-format purehelpers
18+
git-cherry ancillaryinterrogators
19+
git-cherry-pick mainporcelain
20+
git-citool mainporcelain
21+
git-clean mainporcelain
22+
git-clone mainporcelain common
23+
git-commit mainporcelain common
24+
git-commit-tree plumbingmanipulators
25+
git-config ancillarymanipulators
26+
git-count-objects ancillaryinterrogators
27+
git-cvsexportcommit foreignscminterface
28+
git-cvsimport foreignscminterface
29+
git-cvsserver foreignscminterface
30+
git-daemon synchingrepositories
31+
git-describe mainporcelain
32+
git-diff mainporcelain common
33+
git-diff-files plumbinginterrogators
34+
git-diff-index plumbinginterrogators
35+
git-diff-tree plumbinginterrogators
36+
git-fast-import ancillarymanipulators
37+
git-fetch mainporcelain common
38+
git-fetch-pack synchingrepositories
39+
git-filter-branch ancillarymanipulators
40+
git-fmt-merge-msg purehelpers
41+
git-for-each-ref plumbinginterrogators
42+
git-format-patch mainporcelain
43+
git-fsck ancillaryinterrogators
44+
git-gc mainporcelain
45+
git-get-tar-commit-id ancillaryinterrogators
46+
git-grep mainporcelain common
47+
git-gui mainporcelain
48+
git-hash-object plumbingmanipulators
49+
git-http-fetch synchelpers
50+
git-http-push synchelpers
51+
git-imap-send foreignscminterface
52+
git-index-pack plumbingmanipulators
53+
git-init mainporcelain common
54+
git-instaweb ancillaryinterrogators
55+
gitk mainporcelain
56+
git-log mainporcelain common
57+
git-lost-found ancillarymanipulators deprecated
58+
git-ls-files plumbinginterrogators
59+
git-ls-remote plumbinginterrogators
60+
git-ls-tree plumbinginterrogators
61+
git-mailinfo purehelpers
62+
git-mailsplit purehelpers
63+
git-merge mainporcelain common
64+
git-merge-base plumbinginterrogators
65+
git-merge-file plumbingmanipulators
66+
git-merge-index plumbingmanipulators
67+
git-merge-one-file purehelpers
68+
git-mergetool ancillarymanipulators
69+
git-merge-tree ancillaryinterrogators
70+
git-mktag plumbingmanipulators
71+
git-mktree plumbingmanipulators
72+
git-mv mainporcelain common
73+
git-name-rev plumbinginterrogators
74+
git-pack-objects plumbingmanipulators
75+
git-pack-redundant plumbinginterrogators
76+
git-pack-refs ancillarymanipulators
77+
git-parse-remote synchelpers
78+
git-patch-id purehelpers
79+
git-peek-remote purehelpers deprecated
80+
git-prune ancillarymanipulators
81+
git-prune-packed plumbingmanipulators
82+
git-pull mainporcelain common
83+
git-push mainporcelain common
84+
git-quiltimport foreignscminterface
85+
git-read-tree plumbingmanipulators
86+
git-rebase mainporcelain common
87+
git-receive-pack synchelpers
88+
git-reflog ancillarymanipulators
89+
git-relink ancillarymanipulators
90+
git-remote ancillarymanipulators
91+
git-repack ancillarymanipulators
92+
git-request-pull foreignscminterface
93+
git-rerere ancillaryinterrogators
94+
git-reset mainporcelain common
95+
git-revert mainporcelain
96+
git-rev-list plumbinginterrogators
97+
git-rev-parse ancillaryinterrogators
98+
git-rm mainporcelain common
99+
git-runstatus ancillaryinterrogators
100+
git-send-email foreignscminterface
101+
git-send-pack synchingrepositories
102+
git-shell synchelpers
103+
git-shortlog mainporcelain
104+
git-show mainporcelain common
105+
git-show-branch ancillaryinterrogators
106+
git-show-index plumbinginterrogators
107+
git-show-ref plumbinginterrogators
108+
git-sh-setup purehelpers
109+
git-stash mainporcelain
110+
git-status mainporcelain common
111+
git-stripspace purehelpers
112+
git-submodule mainporcelain
113+
git-svn foreignscminterface
114+
git-symbolic-ref plumbingmanipulators
115+
git-tag mainporcelain common
116+
git-tar-tree plumbinginterrogators deprecated
117+
git-unpack-file plumbinginterrogators
118+
git-unpack-objects plumbingmanipulators
119+
git-update-index plumbingmanipulators
120+
git-update-ref plumbingmanipulators
121+
git-update-server-info synchingrepositories
122+
git-upload-archive synchelpers
123+
git-upload-pack synchelpers
124+
git-var plumbinginterrogators
125+
git-verify-pack plumbinginterrogators
126+
git-verify-tag ancillaryinterrogators
127+
git-whatchanged ancillaryinterrogators
128+
git-write-tree plumbingmanipulators

generate-cmdlist.sh

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,8 @@ struct cmdname_help
99
1010
static struct cmdname_help common_cmds[] = {"
1111

12-
sort <<\EOF |
13-
add
14-
bisect
15-
branch
16-
checkout
17-
clone
18-
commit
19-
diff
20-
fetch
21-
grep
22-
init
23-
log
24-
merge
25-
mv
26-
pull
27-
push
28-
rebase
29-
reset
30-
rm
31-
show
32-
status
33-
tag
34-
EOF
12+
sed -n -e 's/^git-\([^ ]*\)[ ].* common.*/\1/p' command-list.txt |
13+
sort |
3514
while read cmd
3615
do
3716
sed -n '

0 commit comments

Comments
 (0)