Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/obsutil.py @ 51642:f28c52a9f7b4
exchange: improve computation of relevant markers for large repos
Find the candidates for nodes with relevant markers by going over
all markers instead of iterating over all nodes. Most nodes will
not have markers anyway.
Further optimize the code by allowing revsets as well, which reduces the
materialization cost.
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Tue, 11 Jun 2024 18:47:50 +0200 |
parents | a5d8f261b716 |
children | a0f1378b932e |
comparison
equal
deleted
inserted
replaced
51641:69c5f8d6c710 | 51642:f28c52a9f7b4 |
---|---|
106 if nodes is None: | 106 if nodes is None: |
107 rawmarkers = repo.obsstore | 107 rawmarkers = repo.obsstore |
108 elif exclusive: | 108 elif exclusive: |
109 rawmarkers = exclusivemarkers(repo, nodes) | 109 rawmarkers = exclusivemarkers(repo, nodes) |
110 else: | 110 else: |
111 rawmarkers = repo.obsstore.relevantmarkers(nodes) | 111 rawmarkers = repo.obsstore.relevantmarkers(nodes=nodes) |
112 | 112 |
113 for markerdata in rawmarkers: | 113 for markerdata in rawmarkers: |
114 yield marker(repo, markerdata) | 114 yield marker(repo, markerdata) |
115 | 115 |
116 | 116 |