diff mercurial/phases.py @ 17671:fdd0fc046cf1

clfilter: introduce a `hassecret` function We can only use copy clone if the cloned repo do not have any secret changeset. The current method for that is to run the "secret()" revset on the remote repo. But with proper filtering of hidden or unserved revision by the remote this revset won't return any revision even if some exist remotely. This changeset adds an explicit function to know if a repo have any secret revision or not. The other option would be to disable filtering for the query but I prefer the approach above, lighter both regarding code and performance.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Mon, 03 Sep 2012 14:05:19 +0200
parents 31f32a96e1e3
children b3ec0b5fd777
line wrap: on
line diff
--- a/mercurial/phases.py	Mon Sep 03 14:03:38 2012 +0200
+++ b/mercurial/phases.py	Mon Sep 03 14:05:19 2012 +0200
@@ -388,3 +388,6 @@
             msg = _("phases.new-commit: not a valid phase name ('%s')")
             raise error.ConfigError(msg % v)
 
+def hassecret(repo):
+    """utility function that check if a repo have any secret changeset."""
+    return bool(repo._phasecache.phaseroots[2])