# HG changeset patch # User Pierre-Yves David # Date 1397229899 25200 # Node ID ed3c5e18a047037ae7327fc744d701fb14a4935f # Parent e995d104c87f3debf430ee910f51b23ff244b8e7 bundle2: add reply awareness to unbundlerecords We need an efficient way to handle bundle replies. The unbundle records class is extended to carry such data. diff -r e995d104c87f -r ed3c5e18a047 mercurial/bundle2.py --- a/mercurial/bundle2.py Tue Apr 01 00:07:17 2014 -0700 +++ b/mercurial/bundle2.py Fri Apr 11 08:24:59 2014 -0700 @@ -205,14 +205,21 @@ def __init__(self): self._categories = {} self._sequences = [] + self._replies = {} - def add(self, category, entry): + def add(self, category, entry, inreplyto=None): """add a new record of a given category. The entry can then be retrieved in the list returned by self['category'].""" self._categories.setdefault(category, []).append(entry) self._sequences.append((category, entry)) + if inreplyto is not None: + self.getreplies(inreplyto).add(category, entry) + + def getreplies(self, partid): + """get the subrecords that replies to a specific part""" + return self._replies.setdefault(partid, unbundlerecords()) def __getitem__(self, cat): return tuple(self._categories.get(cat, ()))