site

(Pierre-Yves David)
2012-01-10: obsolete: lazy relation adding

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