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.
--- 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'),
--- 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)