mercurial/pathutil.py
branchstable
changeset 21568 8dd17b19e722
parent 20033 f962870712da
child 23139 e53f6b72a0e4
child 23598 c02a05cc6f5e
equal deleted inserted replaced
21567:5900bc09e684 21568:8dd17b19e722
   140             if dirname == name:
   140             if dirname == name:
   141                 break
   141                 break
   142             name = dirname
   142             name = dirname
   143 
   143 
   144         raise util.Abort(_("%s not under root '%s'") % (myname, root))
   144         raise util.Abort(_("%s not under root '%s'") % (myname, root))
       
   145 
       
   146 def normasprefix(path):
       
   147     '''normalize the specified path as path prefix
       
   148 
       
   149     Returned vaule can be used safely for "p.startswith(prefix)",
       
   150     "p[len(prefix):]", and so on.
       
   151 
       
   152     For efficiency, this expects "path" argument to be already
       
   153     normalized by "os.path.normpath", "os.path.realpath", and so on.
       
   154 
       
   155     See also issue3033 for detail about need of this function.
       
   156 
       
   157     >>> normasprefix('/foo/bar').replace(os.sep, '/')
       
   158     '/foo/bar/'
       
   159     >>> normasprefix('/').replace(os.sep, '/')
       
   160     '/'
       
   161     '''
       
   162     d, p = os.path.splitdrive(path)
       
   163     if len(p) != len(os.sep):
       
   164         return path + os.sep
       
   165     else:
       
   166         return path