comparison mercurial/hg.py @ 13604:3f6a4579f803

hg: add support for cloning bookmarks
author David Soria Parra <dsp@php.net>
date Sun, 13 Mar 2011 12:24:17 +0100
parents 0d1dca7d2a04
children 4f5ed2bd1724
comparison
equal deleted inserted replaced
13603:395a84f78736 13604:3f6a4579f803
7 # GNU General Public License version 2 or any later version. 7 # GNU General Public License version 2 or any later version.
8 8
9 from i18n import _ 9 from i18n import _
10 from lock import release 10 from lock import release
11 from node import hex, nullid, nullrev, short 11 from node import hex, nullid, nullrev, short
12 import localrepo, bundlerepo, httprepo, sshrepo, statichttprepo 12 import localrepo, bundlerepo, httprepo, sshrepo, statichttprepo, bookmarks
13 import lock, util, extensions, error, encoding, node 13 import lock, util, extensions, error, encoding, node
14 import cmdutil, discovery, url 14 import cmdutil, discovery, url
15 import merge as mergemod 15 import merge as mergemod
16 import verify as verifymod 16 import verify as verifymod
17 import errno, os, shutil 17 import errno, os, shutil
364 continue 364 continue
365 bn = dest_repo[uprev].branch() 365 bn = dest_repo[uprev].branch()
366 dest_repo.ui.status(_("updating to branch %s\n") % bn) 366 dest_repo.ui.status(_("updating to branch %s\n") % bn)
367 _update(dest_repo, uprev) 367 _update(dest_repo, uprev)
368 368
369 # clone all bookmarks
370 if dest_repo.local() and src_repo.capable("pushkey"):
371 rb = src_repo.listkeys('bookmarks')
372 for k, n in rb.iteritems():
373 try:
374 m = dest_repo.lookup(n)
375 dest_repo._bookmarks[k] = m
376 except:
377 pass
378 if rb:
379 bookmarks.write(dest_repo)
380 elif src_repo.local() and dest_repo.capable("pushkey"):
381 for k, n in src_repo._bookmarks.iteritems():
382 dest_repo.pushkey('bookmarks', k, '', hex(n))
383
369 return src_repo, dest_repo 384 return src_repo, dest_repo
370 finally: 385 finally:
371 release(src_lock, dest_lock) 386 release(src_lock, dest_lock)
372 if dir_cleanup is not None: 387 if dir_cleanup is not None:
373 dir_cleanup.cleanup() 388 dir_cleanup.cleanup()