Mercurial > public > mercurial-scm > hg
comparison mercurial/hg.py @ 4478:b2b55acbacdd
Add support for url#id syntax
This allows you to do:
hg clone http://server/repo#stable
which is equivalent to:
hg clone -r stable http://server/repo
Future incoming, outgoing, and push commands will default to using
this id because it's recorded in the default path.
Other commands that accept URLs (push, pull, bundle, incoming, and
outgoing) also accept this syntax.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 01 Jun 2007 18:40:14 -0500 |
parents | 6cbfa740c129 |
children | 63b9d2deed48 |
comparison
equal
deleted
inserted
replaced
4477:6cbfa740c129 | 4478:b2b55acbacdd |
---|---|
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 | 13 import errno, lock, os, shutil, util, cmdutil |
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 |
95 rev: revision to clone up to (implies pull=True) | 95 rev: revision to clone up to (implies pull=True) |
96 | 96 |
97 update: update working directory after clone completes, if | 97 update: update working directory after clone completes, if |
98 destination is local repository | 98 destination is local repository |
99 """ | 99 """ |
100 | |
101 origsource = source | |
102 source, rev = cmdutil.parseurl(ui.expandpath(source), rev) | |
103 | |
100 if isinstance(source, str): | 104 if isinstance(source, str): |
101 src_repo = repository(ui, source) | 105 src_repo = repository(ui, source) |
102 else: | 106 else: |
103 src_repo = source | 107 src_repo = source |
104 source = src_repo.url() | 108 source = src_repo.url() |
132 | 136 |
133 dir_cleanup = None | 137 dir_cleanup = None |
134 if islocal(dest): | 138 if islocal(dest): |
135 dir_cleanup = DirCleanup(dest) | 139 dir_cleanup = DirCleanup(dest) |
136 | 140 |
137 abspath = source | 141 abspath = origsource |
138 copy = False | 142 copy = False |
139 if src_repo.local() and islocal(dest): | 143 if src_repo.local() and islocal(dest): |
140 abspath = os.path.abspath(source) | 144 abspath = os.path.abspath(origsource) |
141 copy = not pull and not rev | 145 copy = not pull and not rev |
142 | 146 |
143 src_lock, dest_lock = None, None | 147 src_lock, dest_lock = None, None |
144 if copy: | 148 if copy: |
145 try: | 149 try: |