git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 35/36] tests: start asserting that *.txt SYNOPSIS matches -h output

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Sep 30, 2022, 18:07 UTC
Message-ID
<patch-v3-35.36-22da68abce3-20220930T180415Z-avarab@gmail.com>
In-Reply-To
<cover-v3-00.36-00000000000-20220930T180414Z-avarab@gmail.com>

There's been a lot of incremental effort to make the SYNOPSIS output in our documentation consistent with the -h output, e.g. cbe485298bf (git reflog [expire|delete]: make -h output consistent with SYNOPSIS, 2022-03-17) is one recent example, but that effort has been an uphill battle due to the lack of regression testing.

This adds such regression testing, we can parse out the SYNOPSIS output with "sed", and is turns out it's relatively easy to normalize it and the "-h" output to match on another.

We now ensure that we won't have regressions when it comes to the list of commands in "expect_help_to_match_txt" below, and in subsequent commits we'll make more of them consistent.

The naïve parser here gets quite a few things wrong, but it doesn't need to be perfect, just good enough that we can compare /some/ of this help output. There's no cases where the output would match except for the parser's stupidity, it's all cases of e.g. comparing the *.txt to non-parse_options() output.

Since that output is wildly different than the *.txt anyway let's leave this for now, we can fix the parser some other time, or it won't become necessary as we'll e.g. convert more things to using parse_options().

Having a special-case for "merge-tree"'s 1f0c3a29da3 (merge-tree: implement real merges, 2022-06-18) is a bit ugly, but preferred to blessing that " (deprecated)" pattern for other commands. We'd probably want to add some other way of marking deprecated commands in the SYNOPSIS syntax. Syntactically 1f0c3a29da3's way of doing it is indistinguishable from the command taking an optional literal "deprecated" string as an argument.

Some of the issues that are left:
 * "git show -h", "git whatchanged -h" and "git reflog --oneline -h"
   all showing "git log" and "git show" usage output. I.e. the
   "builtin_log_usage" in builtin/log.c doesn't take into account what
   command we're running.
 * Likewise "git stage -h" shows "git add" usage, but should be aware
   of what command it's running. The same for "annotate" and "blame".
 * Commands which implement subcommands such as like
   "multi-pack-index", "notes", "remote" etc. having their subcommands
   in a very different order in the *.txt and *.c. Fixing it would
   require some verbose diffs, so it's been left alone for onw.
 * Commands such as "format-patch" have a very long argument list in
   the *.txt, but just "[<options>]" in the *.c.
   What to do about these has been left out of this series, except to
   the extent that preceding commits changed "[<options>]" (or
   equivalent) to the list of options in cases where that list of
   options was tiny, or we clearly meant to exhaustively list the
   options in both *.txt and *.c.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 t/t0450-txt-doc-vs-help.sh  | 121 ++++++++++++++++++++++++++++++++++++
 t/t0450/txt-help-mismatches |  58 +++++++++++++++++
 2 files changed, 179 insertions(+)
 create mode 100755 t/t0450-txt-doc-vs-help.sh
 create mode 100644 t/t0450/txt-help-mismatches
diff --git a/t/t0450-txt-doc-vs-help.sh b/t/t0450-txt-doc-vs-help.sh
new file mode 100755
index 00000000000..6a710b07408
--- /dev/null
+++ b/t/t0450-txt-doc-vs-help.sh
@@ -0,0 +1,121 @@
+#!/bin/sh
+
+test_description='compare (unbuilt) Documentation/*.txt to -h output
+
+Run this with --debug to see a summary of where we still fail to make
+the two versions consistent with one another.'
+
+. ./test-lib.sh
+
+test_expect_success 'setup: list of builtins' '
+	git --list-cmds=builtins >builtins
+'
+
+test_expect_success 'list of txt and help mismatches is sorted' '
+	sort -u "$TEST_DIRECTORY"/t0450/txt-help-mismatches >expect &&
+	if ! test_cmp expect "$TEST_DIRECTORY"/t0450/txt-help-mismatches
+	then
+		BUG "please keep the list of txt and help mismatches sorted"
+	fi
+'
+
+builtin_to_synopsis () {
+	builtin="$1" &&
+	test_when_finished "rm -f out" &&
+	test_expect_code 129 git $builtin -h >out 2>&1 &&
+	sed -n \
+		-e '1,/^$/ {
+			/^$/d;
+			s/^usage: //;
+			s/^ *or: //;
+			p;
+		}' <out
+}
+
+builtin_to_txt () {
+	echo "$GIT_BUILD_DIR/Documentation/git-$1.txt"
+}
+
+txt_synopsis () {
+	sed -n \
+		-e '/^\[verse\]$/,/^$/ {
+			/^$/d;
+			/^\[verse\]$/d;
+			s/{litdd}/--/g;
+
+			s/'\''\(git[ a-z-]*\)'\''/\1/g;
+			p;
+		}' \
+		<"$1"
+}
+
+HT="	"
+align_after_nl () {
+	builtin="$1" &&
+	len=$(printf "git %s " "$builtin" | wc -c) &&
+	pad=$(printf "%${len}s" "") &&
+
+	sed "s/^[ $HT][ $HT]*/$pad/"
+}
+
+test_debug '>failing'
+while read builtin
+do
+	test_expect_success "$builtin -h output has no \t" '
+		builtin_to_synopsis "$builtin" >help.raw &&
+		! grep "$HT" help.raw
+	'
+
+	txt="$(builtin_to_txt "$builtin")" &&
+	preq="$(echo BUILTIN_TXT_$builtin | tr '[:lower:]-' '[:upper:]_')" &&
+
+	if test -f "$txt"
+	then
+		test_set_prereq "$preq"
+	fi &&
+
+	result=
+	if grep -q "^$builtin$" "$TEST_DIRECTORY"/t0450/txt-help-mismatches
+	then
+		result=failure
+	else
+		result=success
+	fi &&
+
+	test_expect_$result "$preq" "$builtin -h output and SYNOPSIS agree" '
+		txt_synopsis "$txt" >txt.raw &&
+		if test "$builtin" = "merge-tree"
+		then
+			sed -e '\''s/ (deprecated)$//g'\'' <txt.raw >txt.raw.new &&
+			mv txt.raw.new txt.raw
+		fi &&
+		builtin_to_synopsis "$builtin" >help.raw &&
+
+		# The *.txt and -h use different spacing for the
+		# alignment of continued usage output, normalize it.
+		align_after_nl "$builtin" <txt.raw >txt &&
+		align_after_nl "$builtin" <help.raw >help &&
+		test_cmp txt help
+	'
+
+	if test_have_prereq "$preq" && test -e txt && test -e help
+	then
+		test_debug '
+			if test_cmp txt help >cmp 2>/dev/null
+			then
+				echo "=== DONE: $builtin ==="
+			else
+				echo "=== TODO: $builtin ===" &&
+				cat cmp
+			fi >>failing
+		'
+
+		# Not in test_expect_success in case --run is being
+		# used with --debug
+		rm -f txt help tmp 2>/dev/null
+	fi
+done <builtins
+
+test_debug 'say "$(cat failing)"'
+
+test_done
diff --git a/t/t0450/txt-help-mismatches b/t/t0450/txt-help-mismatches
new file mode 100644
index 00000000000..a0777acd667
--- /dev/null
+++ b/t/t0450/txt-help-mismatches
@@ -0,0 +1,58 @@
+add
+am
+apply
+archive
+bisect
+blame
+branch
+check-ref-format
+checkout
+checkout-index
+clone
+column
+config
+credential
+credential-cache
+credential-store
+fast-export
+fast-import
+fetch-pack
+fmt-merge-msg
+for-each-ref
+format-patch
+fsck-objects
+fsmonitor--daemon
+gc
+grep
+index-pack
+init-db
+log
+ls-files
+ls-tree
+mailinfo
+mailsplit
+maintenance
+merge
+merge-file
+merge-index
+merge-one-file
+multi-pack-index
+name-rev
+notes
+pack-objects
+push
+range-diff
+rebase
+remote
+remote-ext
+remote-fd
+repack
+reset
+restore
+rev-parse
+show
+stage
+switch
+update-index
+update-ref
+whatchanged
-- 
2.38.0.rc2.935.g6b421ae1592
Previous: Ævar Arnfjörð BjarmasonNext: Eric Sunshine
Message 151 of 230 in “doc/UX: make txt & -h output more consistent”
  1. 00/34 doc/UX: make txt & -h output more consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  2. 03/34 bundle: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Sep 5, 2022
  3. 02/34 builtin/bundle.c: use \t, not fix indentation 2-SP indentationÆvar Arnfjörð Bjarmason, Sep 5, 2022
  4. 04/34 blame: use a more detailed usage_msg_optf() error on bad -LÆvar Arnfjörð Bjarmason, Sep 5, 2022
  5. 01/34 CodingGuidelines: update and clarify command-line conventionsÆvar Arnfjörð Bjarmason, Sep 5, 2022
  6. Junio C HamanoSep 7, 2022
  7. Ævar Arnfjörð BjarmasonSep 8, 2022
  8. Junio C HamanoSep 8, 2022
  9. 05/34 doc SYNOPSIS: don't use ' for subcommandsÆvar Arnfjörð Bjarmason, Sep 5, 2022
  10. 06/34 doc SYNOPSIS: consistently use ' for commandsÆvar Arnfjörð Bjarmason, Sep 5, 2022
  11. 07/34 doc SYNOPSIS & -h: fix incorrect alternates syntaxÆvar Arnfjörð Bjarmason, Sep 5, 2022
  12. Victoria DyeSep 19, 2022
  13. Ævar Arnfjörð BjarmasonSep 26, 2022
  14. 08/34 built-ins: consistently add "\n" between "usage" and optionsÆvar Arnfjörð Bjarmason, Sep 5, 2022
  15. 10/34 doc txt & -h consistency: fix incorrect alternates syntaxÆvar Arnfjörð Bjarmason, Sep 5, 2022
  16. 09/34 doc txt & -h consistency: word-wrapÆvar Arnfjörð Bjarmason, Sep 5, 2022
  17. 11/34 doc txt & -h consistency: add "-z" to cat-file "-h"Ævar Arnfjörð Bjarmason, Sep 5, 2022
  18. 12/34 doc txt & -h consistency: add missing "]" to bugreport "-h"Ævar Arnfjörð Bjarmason, Sep 5, 2022
  19. 13/34 doc txt & -h consistency: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Sep 5, 2022
  20. 14/34 stash doc SYNOPSIS & -h: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Sep 5, 2022
  21. 16/34 t/helper/test-proc-receive.c: use "<options>", not "<options>..."Ævar Arnfjörð Bjarmason, Sep 5, 2022
  22. 15/34 doc txt & -h consistency: use "<options>", not "<options>..."Ævar Arnfjörð Bjarmason, Sep 5, 2022
  23. 17/34 doc txt & -h consistency: fix mismatching labelsÆvar Arnfjörð Bjarmason, Sep 5, 2022
  24. 18/34 doc txt & -h consistency: add or fix optional "--" syntaxÆvar Arnfjörð Bjarmason, Sep 5, 2022
  25. 21/34 doc txt & -h consistency: make "rerere" consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  26. 19/34 doc txt & -h consistency: make output order consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  27. 20/34 doc txt & -h consistency: add missing options and labelsÆvar Arnfjörð Bjarmason, Sep 5, 2022
  28. 22/34 doc txt & -h consistency: make "read-tree" consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  29. 23/34 doc txt & -h consistency: make "bundle" consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  30. 25/34 doc txt & -h consistency: add missing optionsÆvar Arnfjörð Bjarmason, Sep 5, 2022
  31. 24/34 doc txt & -h consistency: use "git foo" form, not "git-foo"Ævar Arnfjörð Bjarmason, Sep 5, 2022
  32. 26/34 doc txt & -h consistency: make "stash" consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  33. 28/34 doc txt & -h consistency: use "[<label>...]" for "zero or more"Ævar Arnfjörð Bjarmason, Sep 5, 2022
  34. 27/34 doc txt & -h consistency: make "annotate" consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  35. 32/34 worktree: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Sep 5, 2022
  36. 29/34 doc txt & -h consistency: make "diff-tree" consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  37. 34/34 tests: start asserting that *.txt SYNOPSIS matches -h outputÆvar Arnfjörð Bjarmason, Sep 5, 2022
  38. 30/34 doc txt & -h consistency: make "commit" consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  39. 33/34 doc txt & -h consistency: make "worktree" consistentÆvar Arnfjörð Bjarmason, Sep 5, 2022
  40. 31/34 reflog doc: list real subcommands up-frontÆvar Arnfjörð Bjarmason, Sep 5, 2022
  41. Victoria DyeSep 19, 2022
  42. Victoria DyeSep 20, 2022
  43. 00/35 doc/UX: make txt & -h output more consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  44. 01/35 CodingGuidelines: update and clarify command-line conventionsÆvar Arnfjörð Bjarmason, Sep 28, 2022
  45. Junio C HamanoSep 28, 2022
  46. Junio C HamanoSep 30, 2022
  47. Ævar Arnfjörð BjarmasonSep 30, 2022
  48. 02/35 builtin/bundle.c: use \t, not fix indentation 2-SP indentationÆvar Arnfjörð Bjarmason, Sep 28, 2022
  49. Eric SunshineSep 28, 2022
  50. 03/35 bundle: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Sep 28, 2022
  51. 04/35 blame: use a more detailed usage_msg_optf() error on bad -LÆvar Arnfjörð Bjarmason, Sep 28, 2022
  52. 07/35 doc SYNOPSIS & -h: fix incorrect alternates syntaxÆvar Arnfjörð Bjarmason, Sep 28, 2022
  53. 05/35 doc SYNOPSIS: don't use ' for subcommandsÆvar Arnfjörð Bjarmason, Sep 28, 2022
  54. 06/35 doc SYNOPSIS: consistently use ' for commandsÆvar Arnfjörð Bjarmason, Sep 28, 2022
  55. 08/35 built-ins: consistently add "\n" between "usage" and optionsÆvar Arnfjörð Bjarmason, Sep 28, 2022
  56. Eric SunshineSep 28, 2022
  57. 09/35 doc txt & -h consistency: word-wrapÆvar Arnfjörð Bjarmason, Sep 28, 2022
  58. 10/35 doc txt & -h consistency: fix incorrect alternates syntaxÆvar Arnfjörð Bjarmason, Sep 28, 2022
  59. 16/35 t/helper/test-proc-receive.c: use "<options>", not "<options>..."Ævar Arnfjörð Bjarmason, Sep 28, 2022
  60. 14/35 stash doc SYNOPSIS & -h: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Sep 28, 2022
  61. 13/35 doc txt & -h consistency: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Sep 28, 2022
  62. 11/35 doc txt & -h consistency: add "-z" to cat-file "-h"Ævar Arnfjörð Bjarmason, Sep 28, 2022
  63. 12/35 doc txt & -h consistency: add missing "]" to bugreport "-h"Ævar Arnfjörð Bjarmason, Sep 28, 2022
  64. 15/35 doc txt & -h consistency: use "<options>", not "<options>..."Ævar Arnfjörð Bjarmason, Sep 28, 2022
  65. 18/35 doc txt & -h consistency: add or fix optional "--" syntaxÆvar Arnfjörð Bjarmason, Sep 28, 2022
  66. 17/35 doc txt & -h consistency: fix mismatching labelsÆvar Arnfjörð Bjarmason, Sep 28, 2022
  67. 19/35 doc txt & -h consistency: make output order consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  68. 20/35 doc txt & -h consistency: add missing options and labelsÆvar Arnfjörð Bjarmason, Sep 28, 2022
  69. Eric SunshineSep 29, 2022
  70. 21/35 doc txt & -h consistency: make "rerere" consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  71. 23/35 doc txt & -h consistency: make "bundle" consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  72. 22/35 doc txt & -h consistency: make "read-tree" consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  73. 27/35 doc txt & -h consistency: make "annotate" consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  74. 24/35 doc txt & -h consistency: use "git foo" form, not "git-foo"Ævar Arnfjörð Bjarmason, Sep 28, 2022
  75. 25/35 doc txt & -h consistency: add missing optionsÆvar Arnfjörð Bjarmason, Sep 28, 2022
  76. Eric SunshineSep 29, 2022
  77. 31/35 reflog doc: list real subcommands up-frontÆvar Arnfjörð Bjarmason, Sep 28, 2022
  78. 26/35 doc txt & -h consistency: make "stash" consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  79. Eric SunshineSep 29, 2022
  80. 28/35 doc txt & -h consistency: use "[<label>...]" for "zero or more"Ævar Arnfjörð Bjarmason, Sep 28, 2022
  81. 32/35 worktree: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Sep 28, 2022
  82. 33/35 doc txt & -h consistency: make "worktree" consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  83. 29/35 doc txt & -h consistency: make "diff-tree" consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  84. 35/35 tests: assert consistent whitespace in -h outputÆvar Arnfjörð Bjarmason, Sep 28, 2022
  85. 30/35 doc txt & -h consistency: make "commit" consistentÆvar Arnfjörð Bjarmason, Sep 28, 2022
  86. 34/35 tests: start asserting that *.txt SYNOPSIS matches -h outputÆvar Arnfjörð Bjarmason, Sep 28, 2022
  87. Junio C HamanoSep 28, 2022
  88. Junio C HamanoSep 28, 2022
  89. Ævar Arnfjörð BjarmasonSep 28, 2022
  90. 00/36 doc/UX: make txt & -h output more consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  91. 02/36 builtin/bundle.c: indent with tabsÆvar Arnfjörð Bjarmason, Sep 30, 2022
  92. Junio C HamanoSep 30, 2022
  93. 01/36 CodingGuidelines: update and clarify command-line conventionsÆvar Arnfjörð Bjarmason, Sep 30, 2022
  94. Junio C HamanoSep 30, 2022
  95. 04/36 blame: use a more detailed usage_msg_optf() error on bad -LÆvar Arnfjörð Bjarmason, Sep 30, 2022
  96. Junio C HamanoSep 30, 2022
  97. Ævar Arnfjörð BjarmasonOct 3, 2022
  98. 03/36 bundle: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Sep 30, 2022
  99. Junio C HamanoSep 30, 2022
  100. 05/36 doc SYNOPSIS: don't use ' for subcommandsÆvar Arnfjörð Bjarmason, Sep 30, 2022
  101. Junio C HamanoSep 30, 2022
  102. 06/36 doc SYNOPSIS: consistently use ' for commandsÆvar Arnfjörð Bjarmason, Sep 30, 2022
  103. 07/36 doc SYNOPSIS & -h: fix incorrect alternates syntaxÆvar Arnfjörð Bjarmason, Sep 30, 2022
  104. Junio C HamanoSep 30, 2022
  105. 09/36 doc SYNOPSIS & -h: word-wrapÆvar Arnfjörð Bjarmason, Sep 30, 2022
  106. 08/36 built-ins: consistently add "\n" between "usage" and optionsÆvar Arnfjörð Bjarmason, Sep 30, 2022
  107. Junio C HamanoSep 30, 2022
  108. 10/36 doc txt & -h consistency: word-wrapÆvar Arnfjörð Bjarmason, Sep 30, 2022
  109. 11/36 doc txt & -h consistency: fix incorrect alternates syntaxÆvar Arnfjörð Bjarmason, Sep 30, 2022
  110. Junio C HamanoOct 1, 2022
  111. 12/36 doc txt & -h consistency: add "-z" to cat-file "-h"Ævar Arnfjörð Bjarmason, Sep 30, 2022
  112. 13/36 doc txt & -h consistency: balance unbalanced "[" and "]"Ævar Arnfjörð Bjarmason, Sep 30, 2022
  113. 15/36 stash doc SYNOPSIS & -h: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Sep 30, 2022
  114. 14/36 doc txt & -h consistency: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Sep 30, 2022
  115. Junio C HamanoSep 30, 2022
  116. 16/36 doc txt & -h consistency: use "<options>", not "<options>..."Ævar Arnfjörð Bjarmason, Sep 30, 2022
  117. Junio C HamanoSep 30, 2022
  118. 17/36 t/helper/test-proc-receive.c: use "<options>", not "<options>..."Ævar Arnfjörð Bjarmason, Sep 30, 2022
  119. Junio C HamanoSep 30, 2022
  120. 18/36 doc txt & -h consistency: fix mismatching labelsÆvar Arnfjörð Bjarmason, Sep 30, 2022
  121. Junio C HamanoSep 30, 2022
  122. 19/36 doc txt & -h consistency: add or fix optional "--" syntaxÆvar Arnfjörð Bjarmason, Sep 30, 2022
  123. Junio C HamanoSep 30, 2022
  124. 20/36 doc txt & -h consistency: make output order consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  125. 22/36 doc txt & -h consistency: make "rerere" consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  126. Junio C HamanoOct 1, 2022
  127. Ævar Arnfjörð BjarmasonOct 3, 2022
  128. Junio C HamanoOct 3, 2022
  129. Ævar Arnfjörð BjarmasonOct 4, 2022
  130. Junio C HamanoOct 5, 2022
  131. 23/36 doc txt & -h consistency: make "read-tree" consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  132. Junio C HamanoOct 1, 2022
  133. 21/36 doc txt & -h consistency: add missing options and labelsÆvar Arnfjörð Bjarmason, Sep 30, 2022
  134. Junio C HamanoOct 1, 2022
  135. Junio C HamanoOct 1, 2022
  136. Junio C HamanoOct 2, 2022
  137. Ævar Arnfjörð BjarmasonOct 4, 2022
  138. 25/36 doc txt & -h consistency: use "git foo" form, not "git-foo"Ævar Arnfjörð Bjarmason, Sep 30, 2022
  139. Junio C HamanoOct 1, 2022
  140. 24/36 doc txt & -h consistency: make "bundle" consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  141. Junio C HamanoOct 1, 2022
  142. 26/36 doc txt & -h consistency: add missing optionsÆvar Arnfjörð Bjarmason, Sep 30, 2022
  143. 27/36 doc txt & -h consistency: make "stash" consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  144. 28/36 doc txt & -h consistency: make "annotate" consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  145. 29/36 doc txt & -h consistency: use "[<label>...]" for "zero or more"Ævar Arnfjörð Bjarmason, Sep 30, 2022
  146. 30/36 doc txt & -h consistency: make "diff-tree" consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  147. 31/36 doc txt & -h consistency: make "commit" consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  148. 32/36 reflog doc: list real subcommands up-frontÆvar Arnfjörð Bjarmason, Sep 30, 2022
  149. 33/36 worktree: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Sep 30, 2022
  150. 34/36 doc txt & -h consistency: make "worktree" consistentÆvar Arnfjörð Bjarmason, Sep 30, 2022
  151. 35/36 tests: start asserting that *.txt SYNOPSIS matches -h outputÆvar Arnfjörð Bjarmason, Sep 30, 2022
  152. Eric SunshineOct 2, 2022
  153. 36/36 tests: assert consistent whitespace in -h outputÆvar Arnfjörð Bjarmason, Sep 30, 2022
  154. Eric SunshineOct 2, 2022
  155. 00/34 doc/UX: make txt & -h output more consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  156. 01/34 tests: assert *.txt SYNOPSIS and -h outputÆvar Arnfjörð Bjarmason, Oct 4, 2022
  157. 02/34 CodingGuidelines: update and clarify command-line conventionsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  158. 03/34 builtin/bundle.c: indent with tabsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  159. 00/34 doc/UX: make txt & -h output more consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  160. 03/34 builtin/bundle.c: indent with tabsÆvar Arnfjörð Bjarmason, Oct 13, 2022
  161. 01/34 tests: assert *.txt SYNOPSIS and -h outputÆvar Arnfjörð Bjarmason, Oct 13, 2022
  162. 02/34 CodingGuidelines: update and clarify command-line conventionsÆvar Arnfjörð Bjarmason, Oct 13, 2022
  163. 05/34 doc SYNOPSIS: don't use ' for subcommandsÆvar Arnfjörð Bjarmason, Oct 13, 2022
  164. 04/34 bundle: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Oct 13, 2022
  165. 06/34 doc SYNOPSIS: consistently use ' for commandsÆvar Arnfjörð Bjarmason, Oct 13, 2022
  166. 07/34 built-ins: consistently add "\n" between "usage" and optionsÆvar Arnfjörð Bjarmason, Oct 13, 2022
  167. 09/34 doc txt & -h consistency: fix incorrect alternates syntaxÆvar Arnfjörð Bjarmason, Oct 13, 2022
  168. 08/34 doc txt & -h consistency: word-wrapÆvar Arnfjörð Bjarmason, Oct 13, 2022
  169. 13/34 stash doc SYNOPSIS & -h: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Oct 13, 2022
  170. 15/34 doc SYNOPSIS & -h: use "-" to separate words in labels, not "_"Ævar Arnfjörð Bjarmason, Oct 13, 2022
  171. 11/34 doc txt & -h consistency: balance unbalanced "[" and "]"Ævar Arnfjörð Bjarmason, Oct 13, 2022
  172. 10/34 doc txt & -h consistency: add "-z" to cat-file "-h"Ævar Arnfjörð Bjarmason, Oct 13, 2022
  173. 12/34 doc txt & -h consistency: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Oct 13, 2022
  174. 14/34 doc txt & -h consistency: use "<options>", not "<options>..."Ævar Arnfjörð Bjarmason, Oct 13, 2022
  175. 16/34 doc txt & -h consistency: fix mismatching labelsÆvar Arnfjörð Bjarmason, Oct 13, 2022
  176. 17/34 doc txt & -h consistency: add or fix optional "--" syntaxÆvar Arnfjörð Bjarmason, Oct 13, 2022
  177. 19/34 doc txt & -h consistency: add missing options and labelsÆvar Arnfjörð Bjarmason, Oct 13, 2022
  178. 20/34 doc txt & -h consistency: make "rerere" consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  179. 24/34 doc txt & -h consistency: add missing optionsÆvar Arnfjörð Bjarmason, Oct 13, 2022
  180. 21/34 doc txt & -h consistency: make "read-tree" consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  181. 18/34 doc txt & -h consistency: make output order consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  182. 22/34 doc txt & -h consistency: make "bundle" consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  183. 23/34 doc txt & -h consistency: use "git foo" form, not "git-foo"Ævar Arnfjörð Bjarmason, Oct 13, 2022
  184. 26/34 doc txt & -h consistency: make "annotate" consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  185. 32/34 doc txt & -h consistency: make "worktree" consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  186. 27/34 doc txt & -h consistency: use "[<label>...]" for "zero or more"Ævar Arnfjörð Bjarmason, Oct 13, 2022
  187. 31/34 worktree: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Oct 13, 2022
  188. 33/34 tests: start asserting that *.txt SYNOPSIS matches -h outputÆvar Arnfjörð Bjarmason, Oct 13, 2022
  189. 29/34 doc txt & -h consistency: make "commit" consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  190. 30/34 reflog doc: list real subcommands up-frontÆvar Arnfjörð Bjarmason, Oct 13, 2022
  191. 25/34 doc txt & -h consistency: make "stash" consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  192. 28/34 doc txt & -h consistency: make "diff-tree" consistentÆvar Arnfjörð Bjarmason, Oct 13, 2022
  193. 34/34 tests: assert consistent whitespace in -h outputÆvar Arnfjörð Bjarmason, Oct 13, 2022
  194. Junio C HamanoOct 13, 2022
  195. 00/34 doc/UX: make txt & -h output more consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  196. 01/34 tests: assert *.txt SYNOPSIS and -h outputÆvar Arnfjörð Bjarmason, Oct 4, 2022
  197. 02/34 CodingGuidelines: update and clarify command-line conventionsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  198. 03/34 builtin/bundle.c: indent with tabsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  199. 04/34 bundle: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Oct 4, 2022
  200. 06/34 doc SYNOPSIS: consistently use ' for commandsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  201. 05/34 doc SYNOPSIS: don't use ' for subcommandsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  202. 07/34 built-ins: consistently add "\n" between "usage" and optionsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  203. 09/34 doc txt & -h consistency: fix incorrect alternates syntaxÆvar Arnfjörð Bjarmason, Oct 4, 2022
  204. 08/34 doc txt & -h consistency: word-wrapÆvar Arnfjörð Bjarmason, Oct 4, 2022
  205. 10/34 doc txt & -h consistency: add "-z" to cat-file "-h"Ævar Arnfjörð Bjarmason, Oct 4, 2022
  206. 11/34 doc txt & -h consistency: balance unbalanced "[" and "]"Ævar Arnfjörð Bjarmason, Oct 4, 2022
  207. 12/34 doc txt & -h consistency: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Oct 4, 2022
  208. 13/34 stash doc SYNOPSIS & -h: correct padding around "[]()"Ævar Arnfjörð Bjarmason, Oct 4, 2022
  209. 14/34 doc txt & -h consistency: use "<options>", not "<options>..."Ævar Arnfjörð Bjarmason, Oct 4, 2022
  210. 15/34 doc SYNOPSIS & -h: use "-" to separate words in labels, not "_"Ævar Arnfjörð Bjarmason, Oct 4, 2022
  211. 17/34 doc txt & -h consistency: add or fix optional "--" syntaxÆvar Arnfjörð Bjarmason, Oct 4, 2022
  212. 16/34 doc txt & -h consistency: fix mismatching labelsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  213. Junio C HamanoOct 4, 2022
  214. 18/34 doc txt & -h consistency: make output order consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  215. 19/34 doc txt & -h consistency: add missing options and labelsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  216. 20/34 doc txt & -h consistency: make "rerere" consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  217. 22/34 doc txt & -h consistency: make "bundle" consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  218. 21/34 doc txt & -h consistency: make "read-tree" consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  219. 23/34 doc txt & -h consistency: use "git foo" form, not "git-foo"Ævar Arnfjörð Bjarmason, Oct 4, 2022
  220. 26/34 doc txt & -h consistency: make "annotate" consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  221. 24/34 doc txt & -h consistency: add missing optionsÆvar Arnfjörð Bjarmason, Oct 4, 2022
  222. 27/34 doc txt & -h consistency: use "[<label>...]" for "zero or more"Ævar Arnfjörð Bjarmason, Oct 4, 2022
  223. 25/34 doc txt & -h consistency: make "stash" consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  224. 34/34 tests: assert consistent whitespace in -h outputÆvar Arnfjörð Bjarmason, Oct 4, 2022
  225. 29/34 doc txt & -h consistency: make "commit" consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  226. 31/34 worktree: define subcommand -h in terms of command -hÆvar Arnfjörð Bjarmason, Oct 4, 2022
  227. 33/34 tests: start asserting that *.txt SYNOPSIS matches -h outputÆvar Arnfjörð Bjarmason, Oct 4, 2022
  228. 28/34 doc txt & -h consistency: make "diff-tree" consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022
  229. 30/34 reflog doc: list real subcommands up-frontÆvar Arnfjörð Bjarmason, Oct 4, 2022
  230. 32/34 doc txt & -h consistency: make "worktree" consistentÆvar Arnfjörð Bjarmason, Oct 4, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.