Jeff King <peff@xxxxxxxx> writes: > Anyway, the problem is sk/dash-is-previous, specifically fc5684b47 > (revision.c: args starting with "-" might be a revision, 2017-02-25). It > looks like the revision parser used to just bail on "-h", because > revision.c would say "I don't recognize this" and then cmd_rev_list() > would similarly say "I don't recognize this" and call usage(). But now > we actually try to read it as a ref, which obviously requires being > inside a repository. Heh, I found another ;-) 95e98cd9 ("revision.c: use refs_for_each*() instead of for_each_*_submodule()", 2017-04-19), which is in the middle of Duy's nd/prune-in-worktree series, does this: #0 die (err=0x6128f8 "BUG: setup_git_env called without repository") at usage.c:114 #1 0x00000000004f9467 in setup_git_env () at environment.c:172 #2 0x00000000004f966c in get_git_dir () at environment.c:214 #3 0x000000000055113b in get_main_ref_store () at refs.c:1544 #4 0x0000000000570ee0 in handle_revision_pseudo_opt (submodule=0x0, revs=0x7fffffffd6a0, argc=1, argv=0x7fffffffe180, flags=0x7fffffffc59c) at revision.c:2110 #5 0x00000000005716f5 in setup_revisions (argc=2, argv=0x7fffffffe178, revs=0x7fffffffd6a0, opt=0x0) at revision.c:2254 #6 0x000000000043074a in cmd_diff_files (argc=2, argv=0x7fffffffe178, prefix=0x0) at builtin/diff-files.c:29 #7 0x0000000000405907 in run_builtin (p=0x87ba00 <commands+672>, argc=2, argv=0x7fffffffe178) at git.c:376 #8 0x0000000000405bb5 in handle_builtin (argc=2, argv=0x7fffffffe178) at git.c:584 #9 0x0000000000405e04 in cmd_main (argc=2, argv=0x7fffffffe178) at git.c:683 #10 0x00000000004a3364 in main (argc=2, argv=0x7fffffffe178) at common-main.c:43 when jk/consistent-h is merged into it and then "git diff-files -h" is run. I guess anything that calls setup_revisions() from the "git cmd -h" bypass need to be prepared with that check_help_option(argc, argv, usage, options); thing. Which is a bit sad, but I tend to agree with you that restructuring to make usage[] of everybody available to git.c is probably too noisy for the benefit it would give us.