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