This series of patches to cat-file significantly improves the UX of the -h output, see 08/10. For the v5 see[1], for the new usage output see [2]. 1. https://lore.kernel.org/git/cover-v5-00.10-00000000000-20211222T041050Z-avarab@xxxxxxxxx/ 2. https://lore.kernel.org/git/patch-v6-08.10-af22a4cb134-20211228T132637Z-avarab@xxxxxxxxx/ Ævar Arnfjörð Bjarmason (10): cat-file tests: test bad usage cat-file tests: test messaging on bad objects/paths parse-options API: add a usage_msg_optf() cat-file docs: fix SYNOPSIS and "-h" output cat-file: move "usage" variable to cmd_cat_file() cat-file: make --batch-all-objects a CMDMODE cat-file: fix remaining usage bugs cat-file: correct and improve usage information object-name.c: don't have GET_OID_ONLY_TO_DIE imply *_QUIETLY cat-file: use GET_OID_ONLY_TO_DIE in --(textconv|filters) Documentation/git-cat-file.txt | 10 +- builtin/cat-file.c | 182 ++++++++++++++++++++------------- builtin/stash.c | 4 +- cache.h | 1 + object-name.c | 8 +- parse-options.c | 13 +++ parse-options.h | 10 ++ t/t1006-cat-file.sh | 92 +++++++++++++++++ t/t8007-cat-file-textconv.sh | 42 ++++++++ 9 files changed, 282 insertions(+), 80 deletions(-) Range-diff against v5: 1: e771bd38792 = 1: e52834a343f cat-file tests: test bad usage 2: 291312e2fb5 = 2: 02622592803 cat-file tests: test messaging on bad objects/paths 3: 0689dbb248c = 3: ff717088a28 parse-options API: add a usage_msg_optf() 4: 2a28b39430e = 4: c4078ce9222 cat-file docs: fix SYNOPSIS and "-h" output 5: 2d90c12fe7b = 5: 9573437374a cat-file: move "usage" variable to cmd_cat_file() 6: 227805d1804 = 6: 30ed6617de8 cat-file: make --batch-all-objects a CMDMODE 7: e6ea403efe0 ! 7: bf24dd063c9 cat-file: fix remaining usage bugs @@ t/t1006-cat-file.sh: do ' done -+test_missing_usage() { ++test_missing_usage () { + test_expect_code 129 "$@" 2>err && + grep -E "^fatal:.*required" err +} @@ t/t1006-cat-file.sh: do - ' done -+test_too_many_arguments() { ++test_too_many_arguments () { + test_expect_code 129 "$@" 2>err && + grep -E "^fatal: too many arguments$" err +} 8: 16b6bb8aaf2 = 8: af22a4cb134 cat-file: correct and improve usage information 9: 47543c57135 = 9: 7bf5654e8f7 object-name.c: don't have GET_OID_ONLY_TO_DIE imply *_QUIETLY 10: 63920969ca8 = 10: 56826ac73e6 cat-file: use GET_OID_ONLY_TO_DIE in --(textconv|filters) -- 2.34.1.1257.g2af47340c7b