[PATCH 1 of 3] clone to master bookmark if available
arne_bab at web.de
arne_bab at web.de
Thu Nov 3 07:11:22 CDT 2011
# HG changeset patch
# User Arne Babenhauserheide <bab at draketo.de>
# Date 1317799793 -7200
# Node ID 5b239c772bf0def200acfa24b5529dcf447af307
# Parent 6ab8b17adc03c423b53fb50951058915edc4ca60
clone to master bookmark if available.
diff --git a/mercurial/hg.py b/mercurial/hg.py
--- a/mercurial/hg.py
+++ b/mercurial/hg.py
@@ -348,12 +348,38 @@ def clone(ui, peeropts, source, dest=Non
destrepo.ui.setconfig('paths', 'default', abspath)
+ # clone all bookmarks
+ if destrepo.local() and srcrepo.capable("pushkey"):
+ rb = srcrepo.listkeys('bookmarks')
+ for k, n in rb.iteritems():
+ try:
+ m = destrepo.lookup(n)
+ destrepo._bookmarks[k] = m
+ except error.RepoLookupError:
+ pass
+ if rb:
+ bookmarks.write(destrepo)
+ elif srcrepo.local() and destrepo.capable("pushkey"):
+ for k, n in srcrepo._bookmarks.iteritems():
+ destrepo.pushkey('bookmarks', k, '', hex(n))
+
+ # check for a master bookmark on the default branch
+ try:
+ # make sure, master is a bookmark
+ master = destrepo._bookmarks['master']
+ m = destrepo['master']
+ if not m.branch() == 'default':
+ master = None
+ print "master:", master, m
+ except: master = None
+
if update:
if update is not True:
checkout = update
if srcrepo.local():
checkout = srcrepo.lookup(update)
- for test in (checkout, 'default', 'tip'):
+
+ for test in (checkout, master, 'default', 'tip'):
if test is None:
continue
try:
@@ -365,21 +391,6 @@ def clone(ui, peeropts, source, dest=Non
destrepo.ui.status(_("updating to branch %s\n") % bn)
_update(destrepo, uprev)
- # clone all bookmarks
- if destrepo.local() and srcrepo.capable("pushkey"):
- rb = srcrepo.listkeys('bookmarks')
- for k, n in rb.iteritems():
- try:
- m = destrepo.lookup(n)
- destrepo._bookmarks[k] = m
- except error.RepoLookupError:
- pass
- if rb:
- bookmarks.write(destrepo)
- elif srcrepo.local() and destrepo.capable("pushkey"):
- for k, n in srcrepo._bookmarks.iteritems():
- destrepo.pushkey('bookmarks', k, '', hex(n))
-
return srcrepo, destrepo
finally:
release(srclock, destlock)
More information about the Mercurial-devel
mailing list