30 raise util.Abort(_("remote branch lookup not supported")) |
30 raise util.Abort(_("remote branch lookup not supported")) |
31 revs.append(hashbranch) |
31 revs.append(hashbranch) |
32 return revs, revs[0] |
32 return revs, revs[0] |
33 branchmap = repo.branchmap() |
33 branchmap = repo.branchmap() |
34 |
34 |
35 def primary(butf8): |
35 def primary(branch): |
36 if butf8 == '.': |
36 if branch == '.': |
37 if not lrepo or not lrepo.local(): |
37 if not lrepo or not lrepo.local(): |
38 raise util.Abort(_("dirstate branch not accessible")) |
38 raise util.Abort(_("dirstate branch not accessible")) |
39 butf8 = lrepo.dirstate.branch() |
39 branch = lrepo.dirstate.branch() |
40 if butf8 in branchmap: |
40 if branch in branchmap: |
41 revs.extend(node.hex(r) for r in reversed(branchmap[butf8])) |
41 revs.extend(node.hex(r) for r in reversed(branchmap[branch])) |
42 return True |
42 return True |
43 else: |
43 else: |
44 return False |
44 return False |
45 |
45 |
46 for branch in branches: |
46 for branch in branches: |
47 butf8 = encoding.fromlocal(branch) |
47 if not primary(branch): |
48 if not primary(butf8): |
|
49 raise error.RepoLookupError(_("unknown branch '%s'") % branch) |
48 raise error.RepoLookupError(_("unknown branch '%s'") % branch) |
50 if hashbranch: |
49 if hashbranch: |
51 butf8 = encoding.fromlocal(hashbranch) |
50 if not primary(hashbranch): |
52 if not primary(butf8): |
|
53 revs.append(hashbranch) |
51 revs.append(hashbranch) |
54 return revs, revs[0] |
52 return revs, revs[0] |
55 |
53 |
56 def parseurl(url, branches=None): |
54 def parseurl(url, branches=None): |
57 '''parse url#branch, returning (url, (branch, branches))''' |
55 '''parse url#branch, returning (url, (branch, branches))''' |
363 uprev = dest_repo.lookup(test) |
361 uprev = dest_repo.lookup(test) |
364 break |
362 break |
365 except error.RepoLookupError: |
363 except error.RepoLookupError: |
366 continue |
364 continue |
367 bn = dest_repo[uprev].branch() |
365 bn = dest_repo[uprev].branch() |
368 dest_repo.ui.status(_("updating to branch %s\n") |
366 dest_repo.ui.status(_("updating to branch %s\n") % bn) |
369 % encoding.tolocal(bn)) |
|
370 _update(dest_repo, uprev) |
367 _update(dest_repo, uprev) |
371 |
368 |
372 return src_repo, dest_repo |
369 return src_repo, dest_repo |
373 finally: |
370 finally: |
374 release(src_lock, dest_lock) |
371 release(src_lock, dest_lock) |