site

(Pierre-Yves David)
2012-01-07: obsolete: clever obsolete not in secret detection to avoid locking

obsolete: clever obsolete not in secret detection to avoid locking the repo without a reason.

diff --git a/hgext/obsolete.py b/hgext/obsolete.py
--- a/hgext/obsolete.py
+++ b/hgext/obsolete.py
@@ -497,11 +497,12 @@ def reposetup(ui, repo):
 
     repo.__class__ = obsoletingrepo
     if repo.ui.configbool('obsolete', 'secret-unstable', True):
-        obsoletes = [c.node() for c in repo.set('obsolete()')]
-        lock = repo.lock()
-        try:
-            phases.retractboundary(repo, 2, obsoletes)
-        finally:
-            lock.release()
+        expobs = [c.node() for c in repo.set('obsolete() - secret()')]
+        if expobs: # do not lock in nothing move. locking for peanut make hgview reload on any command
+            lock = repo.lock()
+            try:
+                phases.retractboundary(repo, 2, expobs)
+            finally:
+                lock.release()