equal
deleted
inserted
replaced
18 |
18 |
19 def parseurl(url, revs): |
19 def parseurl(url, revs): |
20 '''parse url#branch, returning url, branch + revs''' |
20 '''parse url#branch, returning url, branch + revs''' |
21 |
21 |
22 if '#' not in url: |
22 if '#' not in url: |
23 return url, (revs or None), None |
23 return url, (revs or None), revs and revs[-1] or None |
24 |
24 |
25 url, rev = url.split('#', 1) |
25 url, branch = url.split('#', 1) |
26 return url, revs + [rev], rev |
26 checkout = revs and revs[-1] or branch |
|
27 return url, revs + [branch], checkout |
27 |
28 |
28 schemes = { |
29 schemes = { |
29 'bundle': bundlerepo, |
30 'bundle': bundlerepo, |
30 'file': _local, |
31 'file': _local, |
31 'http': httprepo, |
32 'http': httprepo, |
108 source, rev, checkout = parseurl(origsource, rev) |
109 source, rev, checkout = parseurl(origsource, rev) |
109 src_repo = repository(ui, source) |
110 src_repo = repository(ui, source) |
110 else: |
111 else: |
111 src_repo = source |
112 src_repo = source |
112 origsource = source = src_repo.url() |
113 origsource = source = src_repo.url() |
113 checkout = None |
114 checkout = rev and rev[-1] or None |
114 |
115 |
115 if dest is None: |
116 if dest is None: |
116 dest = defaultdest(source) |
117 dest = defaultdest(source) |
117 ui.status(_("destination directory: %s\n") % dest) |
118 ui.status(_("destination directory: %s\n") % dest) |
118 |
119 |
243 fp.write("default = %s\n" % abspath.replace('%', '%%')) |
244 fp.write("default = %s\n" % abspath.replace('%', '%%')) |
244 fp.close() |
245 fp.close() |
245 |
246 |
246 if update: |
247 if update: |
247 dest_repo.ui.status(_("updating working directory\n")) |
248 dest_repo.ui.status(_("updating working directory\n")) |
248 if not checkout: |
249 for test in (checkout, 'default', 'tip'): |
249 try: |
250 try: |
250 checkout = dest_repo.lookup("default") |
251 uprev = dest_repo.lookup(test) |
|
252 break |
251 except: |
253 except: |
252 checkout = dest_repo.changelog.tip() |
254 continue |
253 _update(dest_repo, checkout) |
255 _update(dest_repo, uprev) |
254 |
256 |
255 return src_repo, dest_repo |
257 return src_repo, dest_repo |
256 finally: |
258 finally: |
257 del src_lock, dest_lock, dir_cleanup |
259 del src_lock, dest_lock, dir_cleanup |
258 |
260 |