diff mercurial/obsolete.py @ 18101:a464deecc9dd

clfilter: add a cache on repo for set of revision to filter for a given set. Recomputing the filtered revisions at every access to changelog is far too expensive. This changeset introduce a cache for this information. This cache is hold by the repository (unfiltered repository) and invalidated when necessary. This cache is not a protected attribute (leading _) because some logic that invalidate it is not held by the local repo itself.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Thu, 20 Dec 2012 17:14:07 +0100
parents af632936d3d9
children 67872e939945
line wrap: on
line diff
--- a/mercurial/obsolete.py	Thu Dec 20 15:32:42 2012 +0100
+++ b/mercurial/obsolete.py	Thu Dec 20 17:14:07 2012 +0100
@@ -738,6 +738,7 @@
             if nprec in nsucs:
                 raise util.Abort("changeset %s cannot obsolete itself" % prec)
             repo.obsstore.create(tr, nprec, nsucs, flag, metadata)
+            repo.filteredrevcache.clear()
         tr.close()
     finally:
         tr.release()