diff -r 63a783d1ac85 -r f74f2a4e3327 mercurial/obsolete.py --- a/mercurial/obsolete.py Thu Apr 18 12:55:58 2013 -0700 +++ b/mercurial/obsolete.py Wed Apr 17 11:18:36 2013 +0200 @@ -370,6 +370,22 @@ finally: lock.release() +def syncpush(repo, remote): + """utility function to push bookmark to a remote + + Exist mostly to allow overridding for experimentation purpose""" + if (_enabled and repo.obsstore and + 'obsolete' in remote.listkeys('namespaces')): + rslts = [] + remotedata = repo.listkeys('obsolete') + for key in sorted(remotedata, reverse=True): + # reverse sort to ensure we end with dump0 + data = remotedata[key] + rslts.append(remote.pushkey('obsolete', key, '', data)) + if [r for r in rslts if not r]: + msg = _('failed to push some obsolete markers!\n') + repo.ui.warn(msg) + def allmarkers(repo): """all obsolete markers known in a repository""" for markerdata in repo.obsstore: