commit:     3b7a45a161be5c44c8b2a63da0ef8a65d73765be
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 16 07:11:02 2015 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Sun Aug 16 08:38:15 2015 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=3b7a45a1

SyncScheduler: only sync the selected masters

Since commit 496ff326dc18890889d1ea5d2aec590394635960, master
repositories have been synced even when not selected.

Fixes: 496ff326dc18 ("sync repositories in parallel (bug 557426)")
Acked-by: Brian Dolbec <dolsen <AT> gentoo.org>

 pym/portage/emaint/modules/sync/sync.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/pym/portage/emaint/modules/sync/sync.py 
b/pym/portage/emaint/modules/sync/sync.py
index 879d0f0..601118f 100644
--- a/pym/portage/emaint/modules/sync/sync.py
+++ b/pym/portage/emaint/modules/sync/sync.py
@@ -328,12 +328,15 @@ class SyncScheduler(AsyncScheduler):
                self._leaf_nodes = []
                self._repo_map = {}
                self._running_repos = set()
+               selected_repo_names = frozenset(repo.name
+                       for repo in self._selected_repos)
                for repo in self._selected_repos:
                        self._repo_map[repo.name] = repo
                        self._sync_graph.add(repo.name, None)
                        for master in repo.masters:
-                               self._repo_map[master.name] = master
-                               self._sync_graph.add(master.name, repo.name)
+                               if master.name in selected_repo_names:
+                                       self._repo_map[master.name] = master
+                                       self._sync_graph.add(master.name, 
repo.name)
                self._update_leaf_nodes()
 
        def _task_exit(self, task):

Reply via email to