changeset 18303:4d1671b39168

clfilter: enforce hidden filtering on all repository accesses We ensure all repositores created through `mercurial.hg.repository` are "hidden" filtered. This is an even stronger enforcement than 5bb610f87d1d. Citing Matt's response to changeset 5bb610f87d1d installing filtering in dispatch: > Unfortunately, this means that code that doesn't go through dispatch (ie all > those crazy misguided people using Mercurial as a library) are going to see > these hidden changesets. > > Might be better to instead install the filter in localrepo construction by > default and disable it in dispatch.
author Pierre-Yves David <pierre-yves.david@logilab.fr>
date Fri, 11 Jan 2013 20:34:54 +0100
parents 16c642a6f07d
children 9b6ae29d4801
files mercurial/dispatch.py mercurial/hg.py
diffstat 2 files changed, 2 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/dispatch.py	Thu Jan 03 21:07:04 2013 +0100
+++ b/mercurial/dispatch.py	Fri Jan 11 20:34:54 2013 +0100
@@ -710,9 +710,7 @@
                 repo = hg.repository(ui, path=path)
                 if not repo.local():
                     raise util.Abort(_("repository '%s' is not local") % path)
-                if not options['hidden']:
-                    repo = repo.filtered('hidden')
-                else:
+                if options['hidden']:
                     repo = repo.unfiltered()
                 repo.ui.setconfig("bundle", "mainreporoot", repo.root)
             except error.RequirementError:
--- a/mercurial/hg.py	Thu Jan 03 21:07:04 2013 +0100
+++ b/mercurial/hg.py	Fri Jan 11 20:34:54 2013 +0100
@@ -113,7 +113,7 @@
     if not repo:
         raise util.Abort(_("repository '%s' is not local") %
                          (path or peer.url()))
-    return repo
+    return repo.filtered('hidden')
 
 def peer(uiorrepo, opts, path, create=False):
     '''return a repository peer for the specified path'''