obsolete: lazy relation adding
diff --git a/hgext/obsolete.py b/hgext/obsolete.py --- a/hgext/obsolete.py +++ b/hgext/obsolete.py @@ -300,6 +300,8 @@ def reposetup(ui, repo): """Add a relation marking that node <sub> is a new version of <obj>""" if sub == nullid: sub = None + if obj in self._obssubrels.get(sub, set()): + return 0 self._obssubrels.setdefault(sub, set()).add(obj) self._obsobjrels.setdefault(obj, set()).add(sub) try: @@ -322,6 +324,7 @@ def reposetup(ui, repo): del self._obssubrels if '_obsoleteset' in vars(self): del self._obsoleteset + return 1 ### obsolete storage @util.propertycache