# HG changeset patch # User Pierre-Yves David # Date 1342453486 -7200 # Node ID 62c56c94c77e2138aea6288eab0192e993a4b1de # Parent 70ebb4bd8083598e7b0f64d580b4395b01ef6e8b hidden: move hiddenrevs set on the repository This set is always accessed through the repo for now. Having this set carried by the changelog make it complicated to: - initialize it, computing hidden set may involve revset call - lazy compute it, (1) only the changelog can detect someone access it, (2) only the repo have enought knowledge to compute it. In later version I expect he changelog to apply filtering itself and the set to be carried by changelog again. diff -r 70ebb4bd8083 -r 62c56c94c77e mercurial/changelog.py --- a/mercurial/changelog.py Fri Jul 13 14:38:49 2012 +0200 +++ b/mercurial/changelog.py Mon Jul 16 17:44:46 2012 +0200 @@ -120,8 +120,6 @@ self._realopener = opener self._delayed = False self._divert = False - # hiddenrevs: revs that should be hidden by command and tools - self.hiddenrevs = set() def delayupdate(self): "delay visibility of index updates to other readers" diff -r 70ebb4bd8083 -r 62c56c94c77e mercurial/cmdutil.py --- a/mercurial/cmdutil.py Fri Jul 13 14:38:49 2012 +0200 +++ b/mercurial/cmdutil.py Mon Jul 16 17:44:46 2012 +0200 @@ -1396,7 +1396,7 @@ if not opts.get('hidden'): # --hidden is still experimental and not worth a dedicated revset # yet. Fortunately, filtering revision number is fast. - revs = (r for r in revs if r not in repo.changelog.hiddenrevs) + revs = (r for r in revs if r not in repo.hiddenrevs) else: revs = iter(revs) return revs, expr, filematcher diff -r 70ebb4bd8083 -r 62c56c94c77e mercurial/context.py --- a/mercurial/context.py Fri Jul 13 14:38:49 2012 +0200 +++ b/mercurial/context.py Mon Jul 16 17:44:46 2012 +0200 @@ -203,7 +203,7 @@ def mutable(self): return self.phase() > phases.public def hidden(self): - return self._rev in self._repo.changelog.hiddenrevs + return self._rev in self._repo.hiddenrevs def parents(self): """return contexts for each parent changeset""" diff -r 70ebb4bd8083 -r 62c56c94c77e mercurial/localrepo.py --- a/mercurial/localrepo.py Fri Jul 13 14:38:49 2012 +0200 +++ b/mercurial/localrepo.py Mon Jul 16 17:44:46 2012 +0200 @@ -131,7 +131,12 @@ # Callback are in the form: func(repo, roots) --> processed root. # This list it to be filled by extension during repo setup self._phasedefaults = [] - + # hiddenrevs: revs that should be hidden by command and tools + # + # This set is carried on the repo to ease initialisation and lazy + # loading it'll probably move back to changelog for efficienty and + # consistency reason + self.hiddenrevs = set() try: self.ui.readconfig(self.join("hgrc"), self.root) extensions.loadall(self.ui) diff -r 70ebb4bd8083 -r 62c56c94c77e tests/test-glog.t --- a/tests/test-glog.t Fri Jul 13 14:38:49 2012 +0200 +++ b/tests/test-glog.t Mon Jul 16 17:44:46 2012 +0200 @@ -2047,7 +2047,7 @@ > def reposetup(ui, repo): > for line in repo.opener('hidden'): > ctx = repo[line.strip()] - > repo.changelog.hiddenrevs.add(ctx.rev()) + > repo.hiddenrevs.add(ctx.rev()) > EOF $ echo '[extensions]' >> .hg/hgrc $ echo "hidden=$HGTMP/testhidden.py" >> .hg/hgrc diff -r 70ebb4bd8083 -r 62c56c94c77e tests/test-log.t --- a/tests/test-log.t Fri Jul 13 14:38:49 2012 +0200 +++ b/tests/test-log.t Mon Jul 16 17:44:46 2012 +0200 @@ -1146,7 +1146,7 @@ > def reposetup(ui, repo): > for line in repo.opener('hidden'): > ctx = repo[line.strip()] - > repo.changelog.hiddenrevs.add(ctx.rev()) + > repo.hiddenrevs.add(ctx.rev()) > EOF $ echo '[extensions]' >> $HGRCPATH $ echo "hidden=$HGTMP/testhidden.py" >> $HGRCPATH