Patchwork [1,of,7] subsettable: move from repoview to branchmap, the only place it's used

login
register
mail settings
Submitter Augie Fackler
Date Nov. 17, 2013, 5:21 p.m.
Message ID <a9df4d553ae506727054.1384708883@hit-nxdomain.opendns.com>
Download mbox | patch
Permalink /patch/3017/
State Superseded
Commit 175c6fd8cacc46ec69079e62bdcf611c779c67ea
Headers show

Comments

Augie Fackler - Nov. 17, 2013, 5:21 p.m.
# HG changeset patch
# User Augie Fackler <raf@durin42.com>
# Date 1383766714 18000
#      Wed Nov 06 14:38:34 2013 -0500
# Node ID a9df4d553ae5067270540e97960b4df610e57904
# Parent  3485d14ec69a82737d05bb1a387dd9c7501312fc
subsettable: move from repoview to branchmap, the only place it's used

This is a step towards breaking an import cycle between revset and
repoview. Import cycles happened to work in Python 2 with implicit
relative imports, but breaks on Python 3 when we start using explicit
relative imports via 2to3 rewrite rules.

Patch

diff --git a/contrib/perf.py b/contrib/perf.py
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -386,7 +386,7 @@ 
     allfilters = []
     while possiblefilters:
         for name in possiblefilters:
-            subset = repoview.subsettable.get(name)
+            subset = branchmap.subsettable.get(name)
             if subset not in possiblefilters:
                 break
         else:
diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py
--- a/mercurial/branchmap.py
+++ b/mercurial/branchmap.py
@@ -7,7 +7,7 @@ 
 
 from node import bin, hex, nullid, nullrev
 import encoding
-import util, repoview
+import util
 
 def _filename(repo):
     """name of a branchcache file for a given repo or repoview"""
@@ -58,6 +58,17 @@ 
 
 
 
+### Nearest subset relation
+# Nearest subset of filter X is a filter Y so that:
+# * Y is included in X,
+# * X - Y is as small as possible.
+# This create and ordering used for branchmap purpose.
+# the ordering may be partial
+subsettable = {None: 'visible',
+               'visible': 'served',
+               'served': 'immutable',
+               'immutable': 'base'}
+
 def updatecache(repo):
     cl = repo.changelog
     filtername = repo.filtername
@@ -67,7 +78,7 @@ 
     if partial is None or not partial.validfor(repo):
         partial = read(repo)
         if partial is None:
-            subsetname = repoview.subsettable.get(filtername)
+            subsetname = subsettable.get(filtername)
             if subsetname is None:
                 partial = branchcache()
             else:
diff --git a/mercurial/repoview.py b/mercurial/repoview.py
--- a/mercurial/repoview.py
+++ b/mercurial/repoview.py
@@ -98,16 +98,6 @@ 
                'served': computeunserved,
                'immutable':  computemutable,
                'base':  computeimpactable}
-### Nearest subset relation
-# Nearest subset of filter X is a filter Y so that:
-# * Y is included in X,
-# * X - Y is as small as possible.
-# This create and ordering used for branchmap purpose.
-# the ordering may be partial
-subsettable = {None: 'visible',
-               'visible': 'served',
-               'served': 'immutable',
-               'immutable': 'base'}
 
 def filterrevs(repo, filtername):
     """returns set of filtered revision for this filter name"""
@@ -215,4 +205,3 @@ 
     @property
     def requirements(self):
         return self._unfilteredrepo.requirements
-