[PATCH 1 of 5] scmutil: rename classes from "opener" to "vfs"

Adrian Buehlmann adrian at cadifra.com
Sun Aug 12 09:09:59 UTC 2012


On 2012-08-11 14:14, FUJIWARA Katsunori wrote:
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> # Date 1344687074 -32400
> # Node ID dea54508bb39698cfd74b1281b0d12af09aff139
> # Parent  b131e24e2984a610d77e124dd3f58b2b5eda6d1a
> scmutil: rename classes from "opener" to "vfs"

..

> This patch just rename class names, so still leaves original class
> names as aliases for renamed classes for backward compatibility.

This sentence is erroneous. Perhaps this would work instead:

"For backwards compatibility, aliases for the old names are added."

Stupid question: Will the aliases be removed at some point in the
future? If yes, when will that happen?

> diff -r b131e24e2984 -r dea54508bb39 mercurial/scmutil.py
> --- a/mercurial/scmutil.py	Mon Aug 06 12:07:21 2012 -0500
> +++ b/mercurial/scmutil.py	Sat Aug 11 21:11:14 2012 +0900
> @@ -167,7 +167,7 @@
>          # want to add "foo/bar/baz" before checking if there's a "foo/.hg"
>          self.auditeddir.update(prefixes)
>  
> -class abstractopener(object):
> +class abstractvfs(object):
>      """Abstract base class; cannot be instantiated"""
>  
>      def __init__(self, *args, **kwargs):
> @@ -219,8 +219,10 @@
>      def makedirs(self, path=None, mode=None):
>          return util.makedirs(self.join(path), mode)
>  
> -class opener(abstractopener):
> -    '''Open files relative to a base directory
> +abstractopner = abstractvfs
             ^
Typo.

> +
> +class vfs(abstractvfs):
> +    '''Operate files relative to a base directory
>  
>      This class is used to hide the details of COW semantics and
>      remote file access from higher level code.
> @@ -327,8 +329,10 @@
>          else:
>              return self.base
>  
> -class filteropener(abstractopener):
> -    '''Wrapper opener for filtering filenames with a function.'''
> +opener = vfs
> +
> +class filtervfs(abstractvfs):
> +    '''Wrapper vfs for filtering filenames with a function.'''
>  
>      def __init__(self, opener, filter):
>          self._filter = filter
> @@ -337,6 +341,8 @@
>      def __call__(self, path, *args, **kwargs):
>          return self._orig(self._filter(path), *args, **kwargs)
>  
> +filteropener = filtervfs
> +
>  def canonpath(root, cwd, myname, auditor=None):
>      '''return the canonical path of myname, given cwd and root'''
>      if util.endswithsep(root):
> diff -r b131e24e2984 -r dea54508bb39 mercurial/statichttprepo.py
> --- a/mercurial/statichttprepo.py	Mon Aug 06 12:07:21 2012 -0500
> +++ b/mercurial/statichttprepo.py	Sat Aug 11 21:11:14 2012 +0900
> @@ -64,7 +64,7 @@
>      urlopener = url.opener(ui, authinfo)
>      urlopener.add_handler(byterange.HTTPRangeHandler())
>  
> -    class statichttpopener(scmutil.abstractopener):
> +    class statichttpvfs(scmutil.abstractvfs):
>          def __init__(self, base):
>              self.base = base
>  
> @@ -74,7 +74,7 @@
>              f = "/".join((self.base, urllib.quote(path)))
>              return httprangereader(f, urlopener)
>  
> -    return statichttpopener
> +    return statichttpvfs
>  
>  class statichttppeer(localrepo.localpeer):
>      def local(self):

No alias for statichttpopener?

> diff -r b131e24e2984 -r dea54508bb39 mercurial/store.py
> --- a/mercurial/store.py	Mon Aug 06 12:07:21 2012 -0500
> +++ b/mercurial/store.py	Sat Aug 11 21:11:14 2012 +0900
> @@ -367,7 +367,7 @@
>              self._load()
>          return iter(self.entries)
>  
> -class _fncacheopener(scmutil.abstractopener):
> +class _fncachevfs(scmutil.abstractvfs):
>      def __init__(self, op, fnc, encode):
>          self.opener = op
>          self.fncache = fnc

..

> @@ -378,6 +378,8 @@
>              self.fncache.add(path)
>          return self.opener(self.encode(path), mode, *args, **kw)
>  
> +_fncacheopener = _fncachevfs
> +

Is this really needed? _fncacheopener should be private to scmutil (it
starts with an underbar)

>  class fncachestore(basicstore):
>      def __init__(self, path, openertype, encode):
>          self.encode = encode



More information about the Mercurial-devel mailing list