remote-hg: update bookmarks when using a remote
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Felipe Contreras committed
May 24, 2013 at 21:29 UTC
731ce6cf75d304bc14c1ee0ad45e5846f5db6834
1 file changed
+17
contrib/remote-helpers/git-remote-hg
+17
@@ -356,6 +356,21 @@ def fixup_user(user):
356
357
return '%s <%s>' % (name, mail)
358
359
+def updatebookmarks(repo, peer):
360
+ remotemarks = peer.listkeys('bookmarks')
361
+ localmarks = repo._bookmarks
362
+
363
+ if not remotemarks:
364
+ return
365
+
366
+ for k, v in remotemarks.iteritems():
367
+ localmarks[k] = hgbin(v)
368
+
369
+ if hasattr(localmarks, 'write'):
370
+ localmarks.write()
371
+ else:
372
+ bookmarks.write(repo)
373
+
374
def get_repo(url, alias):
375
global dirname, peer
376
@@ -394,6 +409,8 @@ def get_repo(url, alias):
409
die('Repository error')
410
repo.pull(peer, heads=None, force=True)
411
412
+ updatebookmarks(repo, peer)
413
+
414
return repo
415
416
def rev_to_mark(rev):