# HG changeset patch # User Pierre-Yves David # Date 1391133287 28800 # Node ID 1b926f0bbf8afac1c3751980948787160d67f6d5 # Parent bebf8b8479f30ca24800ed0e6a70d5123ab94d60 push: move obsolescence marker exchange in the exchange module The obsolescence marker exchange code was already extracted during a previous cycle. We are moving the extracted functio in this module. This function will read and write data in the `pushoperation` object and I prefer to have all core function collaborating through this object in the same place. This changeset is pure code movement only. Code change for direct consumption of the `pushoperation` object will come later. diff -r bebf8b8479f3 -r 1b926f0bbf8a mercurial/exchange.py --- a/mercurial/exchange.py Thu Jan 30 17:51:41 2014 -0800 +++ b/mercurial/exchange.py Thu Jan 30 17:54:47 2014 -0800 @@ -247,7 +247,7 @@ pushop.ui.warn(_('updating %s to public failed!\n') % newremotehead) pushop.ui.debug('try to push obsolete markers to remote\n') - obsolete.syncpush(pushop.repo, pushop.remote) + _pushobsolete(pushop.repo, pushop.remote) finally: if lock is not None: lock.release() @@ -258,6 +258,22 @@ _pushbookmark(pushop) return ret +def _pushobsolete(repo, remote): + """utility function to push obsolete markers to a remote + + Exist mostly to allow overriding for experimentation purpose""" + if (obsolete._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 _pushbookmark(pushop): """Update bookmark position on remote""" ui = pushop.ui diff -r bebf8b8479f3 -r 1b926f0bbf8a mercurial/obsolete.py --- a/mercurial/obsolete.py Thu Jan 30 17:51:41 2014 -0800 +++ b/mercurial/obsolete.py Thu Jan 30 17:54:47 2014 -0800 @@ -384,22 +384,6 @@ finally: lock.release() -def syncpush(repo, remote): - """utility function to push obsolete markers to a remote - - Exist mostly to allow overriding 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 syncpull(repo, remote, gettransaction): """utility function to pull obsolete markers from a remote