git-repo/subcmds
Mike Frysinger bb930461ce subcmds: stop instantiating at import time
The current subcmds design has singletons in all_commands.  This isn't
exactly unusual, but the fact that our main & help subcommand will then
attach members to the classes before invoking them is.  This makes it
hard to keep track of what members a command has access to, and the two
code paths (main & help) attach different members depending on what APIs
they then invoke.

Lets pull this back a step by storing classes in all_commands and leave
the instantiation step to when they're used.  This doesn't fully clean
up the confusion, but gets us closer.

Change-Id: I6a768ff97fe541e6f3228358dba04ed66c4b070a
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/259154
Tested-by: Mike Frysinger <vapier@google.com>
Reviewed-by: David Pursehouse <dpursehouse@collab.net>
2020-03-17 00:08:52 +00:00
..
__init__.py subcmds: stop instantiating at import time 2020-03-17 00:08:52 +00:00
abandon.py abandon: add support for --quiet 2020-02-20 06:14:00 +00:00
branches.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
checkout.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
cherry_pick.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
diff.py diff: delete unused nested func 2020-02-17 23:49:47 +00:00
diffmanifests.py diffmanifests: honour --pretty-format when printing --raw 2020-03-13 09:50:46 +00:00
download.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
forall.py assume environment always accepts strings 2020-02-19 18:03:46 +00:00
gitc_delete.py flake8: Suppress "F821 undefined name" inline for Python 2 names 2020-02-15 04:45:16 +00:00
gitc_init.py pyflakes: Fix remaining "E501 line too long" warnings 2020-02-13 04:54:10 +00:00
grep.py drop old git_require checks 2020-02-12 11:44:59 +00:00
help.py subcmds: stop instantiating at import time 2020-03-17 00:08:52 +00:00
info.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
init.py repo/init: improve basic progress messages 2020-02-22 08:23:51 +00:00
list.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
manifest.py manifest: support optional --manifest-name 2020-02-22 19:17:40 +00:00
overview.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
prune.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
rebase.py avoid negative variables 2020-02-19 00:24:43 +00:00
selfupdate.py avoid negative variables 2020-02-19 00:24:43 +00:00
smartsync.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
stage.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
start.py Fix blank line issues reported by flake8 2020-02-12 06:36:40 +00:00
status.py resort a few module imports to follow PEP8 2020-02-18 06:28:12 +00:00
sync.py sync: fix os.environ logic errors 2020-03-07 13:10:14 +00:00
upload.py upload: add config setting for upload notifications 2020-03-15 08:31:35 +00:00
version.py subcmds: stop instantiating at import time 2020-03-17 00:08:52 +00:00