mercurial/hg.py
changeset 5184 92236732d5a1
parent 4961 126f527b3ba3
child 5187 c1dbc9ae8f2b
equal deleted inserted replaced
5183:664a1c312972 5184:92236732d5a1
     8 
     8 
     9 from node import *
     9 from node import *
    10 from repo import *
    10 from repo import *
    11 from i18n import _
    11 from i18n import _
    12 import localrepo, bundlerepo, httprepo, sshrepo, statichttprepo
    12 import localrepo, bundlerepo, httprepo, sshrepo, statichttprepo
    13 import errno, lock, os, shutil, util, cmdutil, extensions
    13 import errno, lock, os, shutil, util, extensions
    14 import merge as _merge
    14 import merge as _merge
    15 import verify as _verify
    15 import verify as _verify
    16 
    16 
    17 def _local(path):
    17 def _local(path):
    18     return (os.path.isfile(util.drop_scheme('file', path)) and
    18     return (os.path.isfile(util.drop_scheme('file', path)) and
    19             bundlerepo or localrepo)
    19             bundlerepo or localrepo)
       
    20 
       
    21 def parseurl(url, revs):
       
    22     '''parse url#branch, returning url, branch + revs'''
       
    23 
       
    24     if '#' not in url:
       
    25         return url, (revs or None)
       
    26 
       
    27     url, rev = url.split('#', 1)
       
    28     return url, revs + [rev]
    20 
    29 
    21 schemes = {
    30 schemes = {
    22     'bundle': bundlerepo,
    31     'bundle': bundlerepo,
    23     'file': _local,
    32     'file': _local,
    24     'http': httprepo,
    33     'http': httprepo,
    93     update: update working directory after clone completes, if
   102     update: update working directory after clone completes, if
    94     destination is local repository
   103     destination is local repository
    95     """
   104     """
    96 
   105 
    97     origsource = source
   106     origsource = source
    98     source, rev = cmdutil.parseurl(ui.expandpath(source), rev)
   107     source, rev = parseurl(ui.expandpath(source), rev)
    99 
   108 
   100     if isinstance(source, str):
   109     if isinstance(source, str):
   101         src_repo = repository(ui, source)
   110         src_repo = repository(ui, source)
   102     else:
   111     else:
   103         src_repo = source
   112         src_repo = source