# HG changeset patch # User Pierre-Yves David # Date 1391132811 28800 # Node ID 58300f61b1399fed6e5297bdcd68dfb532563d55 # Parent c05ad450df23b1616ff1b628f88fdb1fd45c6e75 push: move bookmarks exchange in the exchange module The bookmark exchange code was already extracted during a previous cycle. This changesets moves the extracted function in this module. This function will read and write data in the `pushoperation` object and It is preferable 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 c05ad450df23 -r 58300f61b139 mercurial/bookmarks.py --- a/mercurial/bookmarks.py Thu Jan 30 17:08:29 2014 -0800 +++ b/mercurial/bookmarks.py Thu Jan 30 17:46:51 2014 -0800 @@ -363,22 +363,6 @@ writer(msg) localmarks.write() -def updateremote(ui, repo, remote, revs): - ui.debug("checking for updated bookmarks\n") - revnums = map(repo.changelog.rev, revs or []) - ancestors = [a for a in repo.changelog.ancestors(revnums, inclusive=True)] - (addsrc, adddst, advsrc, advdst, diverge, differ, invalid - ) = compare(repo, repo._bookmarks, remote.listkeys('bookmarks'), - srchex=hex) - - for b, scid, dcid in advsrc: - if ancestors and repo[scid].rev() not in ancestors: - continue - if remote.pushkey('bookmarks', b, dcid, scid): - ui.status(_("updating bookmark %s\n") % b) - else: - ui.warn(_('updating bookmark %s failed!\n') % b) - def pushtoremote(ui, repo, remote, targets): (addsrc, adddst, advsrc, advdst, diverge, differ, invalid ) = compare(repo, repo._bookmarks, remote.listkeys('bookmarks'), diff -r c05ad450df23 -r 58300f61b139 mercurial/exchange.py --- a/mercurial/exchange.py Thu Jan 30 17:08:29 2014 -0800 +++ b/mercurial/exchange.py Thu Jan 30 17:46:51 2014 -0800 @@ -255,5 +255,22 @@ if locallock is not None: locallock.release() - bookmarks.updateremote(pushop.ui, unfi, pushop.remote, pushop.revs) + _pushbookmark(pushop.ui, unfi, pushop.remote, pushop.revs) return ret + +def _pushbookmark(ui, repo, remote, revs): + """Update bookmark position on remote""" + ui.debug("checking for updated bookmarks\n") + revnums = map(repo.changelog.rev, revs or []) + ancestors = [a for a in repo.changelog.ancestors(revnums, inclusive=True)] + (addsrc, adddst, advsrc, advdst, diverge, differ, invalid + ) = bookmarks.compare(repo, repo._bookmarks, remote.listkeys('bookmarks'), + srchex=hex) + + for b, scid, dcid in advsrc: + if ancestors and repo[scid].rev() not in ancestors: + continue + if remote.pushkey('bookmarks', b, dcid, scid): + ui.status(_("updating bookmark %s\n") % b) + else: + ui.warn(_('updating bookmark %s failed!\n') % b)