mercurial/subrepo.py
changeset 11109 a2bc2f2d77a9
parent 11078 37d1b20168d1
child 11111 d2da9e6dd13e
equal deleted inserted replaced
11108:8d0cdeaa12f3 11109:a2bc2f2d77a9
     3 # Copyright 2009-2010 Matt Mackall <mpm@selenic.com>
     3 # Copyright 2009-2010 Matt Mackall <mpm@selenic.com>
     4 #
     4 #
     5 # This software may be used and distributed according to the terms of the
     5 # This software may be used and distributed according to the terms of the
     6 # GNU General Public License version 2 or any later version.
     6 # GNU General Public License version 2 or any later version.
     7 
     7 
     8 import errno, os, re, xml.dom.minidom, shutil
     8 import errno, os, re, xml.dom.minidom, shutil, urlparse, posixpath
     9 from i18n import _
     9 from i18n import _
    10 import config, util, node, error
    10 import config, util, node, error
    11 hg = None
    11 hg = None
    12 
    12 
    13 nullstate = ('', '', 'empty')
    13 nullstate = ('', '', 'empty')
   133             return source
   133             return source
   134         parent = _abssource(repo._subparent, push)
   134         parent = _abssource(repo._subparent, push)
   135         if '://' in parent:
   135         if '://' in parent:
   136             if parent[-1] == '/':
   136             if parent[-1] == '/':
   137                 parent = parent[:-1]
   137                 parent = parent[:-1]
   138             return parent + '/' + source
   138             r = urlparse.urlparse(parent + '/' + source)
   139         return os.path.join(parent, repo._subsource)
   139             r = urlparse.urlunparse((r[0], r[1],
       
   140                                      posixpath.normpath(r.path),
       
   141                                      r[3], r[4], r[5]))
       
   142             return r
       
   143         return posixpath.normpath(os.path.join(parent, repo._subsource))
   140     if push and repo.ui.config('paths', 'default-push'):
   144     if push and repo.ui.config('paths', 'default-push'):
   141         return repo.ui.config('paths', 'default-push', repo.root)
   145         return repo.ui.config('paths', 'default-push', repo.root)
   142     return repo.ui.config('paths', 'default', repo.root)
   146     return repo.ui.config('paths', 'default', repo.root)
   143 
   147 
   144 def subrepo(ctx, path):
   148 def subrepo(ctx, path):