From 942dca43d3995ba3cd01fd2c5084699a752a5897 Mon Sep 17 00:00:00 2001 From: jack1142 <6032823+jack1142@users.noreply.github.com> Date: Tue, 2 Jul 2019 03:57:30 +0200 Subject: [PATCH] [Downloader]: RepoManager: don't load repos in __init__ (#2829) Loading repos is already done in initialize() method. This could actually turn out badly if both of git processes would touch the same repo at the same time. This also fixes create_backup in setup.py - now it properly generates repos.json --- redbot/cogs/downloader/repo_manager.py | 3 --- redbot/setup.py | 3 ++- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/redbot/cogs/downloader/repo_manager.py b/redbot/cogs/downloader/repo_manager.py index a12ec9030..9985e08bd 100644 --- a/redbot/cogs/downloader/repo_manager.py +++ b/redbot/cogs/downloader/repo_manager.py @@ -540,9 +540,6 @@ class RepoManager: def __init__(self): self._repos = {} - loop = asyncio.get_event_loop() - loop.create_task(self._load_repos(set=True)) # str_name: Repo - async def initialize(self): await self._load_repos(set=True) diff --git a/redbot/setup.py b/redbot/setup.py index 20e2c848f..797cbd841 100644 --- a/redbot/setup.py +++ b/redbot/setup.py @@ -409,8 +409,9 @@ async def create_backup(instance): from redbot.cogs.downloader.repo_manager import RepoManager repo_mgr = RepoManager() + await repo_mgr.initialize() repo_output = [] - for _, repo in repo_mgr._repos: + for repo in repo_mgr._repos.values(): repo_output.append({"url": repo.url, "name": repo.name, "branch": repo.branch}) repo_filename = pth / "cogs" / "RepoManager" / "repos.json" with open(str(repo_filename), "w") as f: