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