# HG changeset patch # User Pierre-Yves David # Date 1357932894 -3600 # Node ID 4d1671b391687f9a503cbbb943efd02246fdb1af # Parent 16c642a6f07d1d4ba5ab325323ed1b58c6b27224 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. diff -r 16c642a6f07d -r 4d1671b39168 mercurial/dispatch.py --- 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: diff -r 16c642a6f07d -r 4d1671b39168 mercurial/hg.py --- 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'''