hgext/convert/filemap.py
changeset 9884 2dd700a35fd1
parent 8693 68e0a55eee6e
child 10264 d6512b3e9ac0
equal deleted inserted replaced
9883:0a8a43b4ca75 9884:2dd700a35fd1
     8 from mercurial.i18n import _
     8 from mercurial.i18n import _
     9 from mercurial import util
     9 from mercurial import util
    10 from common import SKIPREV, converter_source
    10 from common import SKIPREV, converter_source
    11 
    11 
    12 def rpairs(name):
    12 def rpairs(name):
    13     yield '.', name
       
    14     e = len(name)
    13     e = len(name)
    15     while e != -1:
    14     while e != -1:
    16         yield name[:e], name[e+1:]
    15         yield name[:e], name[e+1:]
    17         e = name.rfind('/', 0, e)
    16         e = name.rfind('/', 0, e)
       
    17     yield '.', name
    18 
    18 
    19 class filemapper(object):
    19 class filemapper(object):
    20     '''Map and filter filenames when importing.
    20     '''Map and filter filenames when importing.
    21     A name can be mapped to itself, a new name, or None (omit from new
    21     A name can be mapped to itself, a new name, or None (omit from new
    22     repository).'''
    22     repository).'''
    80             inc = name
    80             inc = name
    81         if self.exclude:
    81         if self.exclude:
    82             exc = self.lookup(name, self.exclude)[0]
    82             exc = self.lookup(name, self.exclude)[0]
    83         else:
    83         else:
    84             exc = ''
    84             exc = ''
    85         if not inc or exc:
    85         if (not self.include and exc) or (len(inc) <= len(exc)):
    86             return None
    86             return None
    87         newpre, pre, suf = self.lookup(name, self.rename)
    87         newpre, pre, suf = self.lookup(name, self.rename)
    88         if newpre:
    88         if newpre:
    89             if newpre == '.':
    89             if newpre == '.':
    90                 return suf
    90                 return suf