git-repo/subcmds
Mike Frysinger 56345c345b repo: refactor help output handling
Currently we have the behavior:
* `repo`: Equivalent to `repo help` -- only shows common subcommands
  (with short description), and then exits 0.
* `repo --help`: Shows repo's core options, lists all commands (no
  specific info), and then exits 0.

The first case is not behaving well:
* If you run `repo` without a specific subcommand, that's an error,
  so we should be exiting 1 instead.
* Showing only subcommands and no actual option summary makes it seem
  like repo itself doesn't take any options.  This confuses users.

Let's rework things a bit.  Now we have the behavior:
* `repo`: Shows repo's core options, lists all commands (no specific
  info), and then exits 1.
* `repo --help`: Shows repo's core options, shows common subcommands
  (with short description), and then exits 0.
* `repo --help-all`: Shows repo's core options, shows all subcommands
  (with short description), and then exits 0.

Basically we swap the behavior of `repo` and `repo --help`, and fix
the exit status when the subcommand is missing.

The addition of --help-all is mostly for the man pages.  We were
relying on `repo help --all` to generate the repo(1) man page, but
that too omitted the core repo options.  Now the man page includes
all the core repo options and provides a summary of all commands.

Change-Id: I1f99b99d5b8af2591f96a078d0647a3d76d6b0fc
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/312908
Reviewed-by: Xin Li <delphij@google.com>
Tested-by: Mike Frysinger <vapier@google.com>
2021-07-28 05:38:34 +00:00
..
__init__.py strip python2-only coding:utf-8 & print_function settings 2021-01-06 18:53:05 +00:00
abandon.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
branches.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
checkout.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
cherry_pick.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
diff.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
diffmanifests.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
download.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
forall.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
gitc_delete.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
gitc_init.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
grep.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
help.py repo: refactor help output handling 2021-07-28 05:38:34 +00:00
info.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
init.py superproject - More friendly user message when superproject failed. 2021-07-14 00:41:36 +00:00
list.py list: add a --relative-to option 2021-07-27 06:20:52 +00:00
manifest.py manifest: Support ignoring local manifests with 'repo manifest' 2021-07-20 04:56:12 +00:00
overview.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
prune.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
rebase.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
selfupdate.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
smartsync.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
stage.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
start.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
status.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
sync.py Update manifest_name with the returned manifest name for superproject. 2021-07-14 22:51:33 +00:00
upload.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00
version.py commands: document the "common" class attribute 2021-06-15 06:07:37 +00:00