summaryrefslogtreecommitdiffstats
path: root/main.py
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2020-02-25 15:18:31 -0500
committerDavid Pursehouse <dpursehouse@collab.net>2020-03-17 00:08:52 +0000
commitbb930461cee056de210816e58c36a8d6dfd122be (patch)
tree3f98c279580f02ecf7c1608a20caa294f1075f45 /main.py
parentd3639c53d56feaea81474ffd28395a124744dab7 (diff)
downloadgit-repo-bb930461cee056de210816e58c36a8d6dfd122be.tar.gz
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>
Diffstat (limited to 'main.py')
-rwxr-xr-xmain.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/main.py b/main.py
index b309fad3..1393b400 100755
--- a/main.py
+++ b/main.py
@@ -204,7 +204,7 @@ class _Repo(object):
204 SetDefaultColoring(gopts.color) 204 SetDefaultColoring(gopts.color)
205 205
206 try: 206 try:
207 cmd = self.commands[name] 207 cmd = self.commands[name]()
208 except KeyError: 208 except KeyError:
209 print("repo: '%s' is not a repo command. See 'repo help'." % name, 209 print("repo: '%s' is not a repo command. See 'repo help'." % name,
210 file=sys.stderr) 210 file=sys.stderr)