D6884: bookmarks: remove changectx() method from bmstore (API)
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Wed Sep 25 22:14:53 UTC 2019
durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
All the callsites of this method have access to the repo, and I'd
rather not have to duplicate this across alternative bmstore
implementations. Besides, it feels like a bit of a layering violation.
.. api::
`mercurial.bookmarks.bmstore` no longer has a convenience method
for looking up changectx instances from a bookmark name. Use
`repo[repo.bookmarks[name]]` intead of
`repo.bookmarks.changectx(name)`.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6884
AFFECTED FILES
hgext/infinitepush/bundleparts.py
mercurial/bookmarks.py
mercurial/discovery.py
CHANGE DETAILS
diff --git a/mercurial/discovery.py b/mercurial/discovery.py
--- a/mercurial/discovery.py
+++ b/mercurial/discovery.py
@@ -301,7 +301,7 @@
for bm in localbookmarks:
rnode = remotebookmarks.get(bm)
if rnode and rnode in repo:
- lctx, rctx = localbookmarks.changectx(bm), repo[rnode]
+ lctx, rctx = repo[localbookmarks[bm]], repo[rnode]
if bookmarks.validdest(repo, rctx, lctx):
bookmarkedheads.add(lctx.node())
else:
diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py
--- a/mercurial/bookmarks.py
+++ b/mercurial/bookmarks.py
@@ -271,7 +271,7 @@
return []
rev = self._repo[target].rev()
anc = self._repo.changelog.ancestors([rev])
- bmctx = self.changectx(mark)
+ bmctx = self._repo[self[mark]]
divs = [self._refmap[b] for b in self._refmap
if b.split('@', 1)[0] == mark.split('@', 1)[0]]
@@ -412,11 +412,11 @@
bmchanges = []
if marks[active] in parents:
new = repo[node]
- divs = [marks.changectx(b) for b in marks
+ divs = [repo[marks[b]] for b in marks
if b.split('@', 1)[0] == active.split('@', 1)[0]]
anc = repo.changelog.ancestors([new.rev()])
deletefrom = [b.node() for b in divs if b.rev() in anc or b == new]
- if validdest(repo, marks.changectx(active), new):
+ if validdest(repo, repo[marks[active]], new):
bmchanges.append((active, new.node()))
for bm in divergent2delete(repo, deletefrom, active):
diff --git a/hgext/infinitepush/bundleparts.py b/hgext/infinitepush/bundleparts.py
--- a/hgext/infinitepush/bundleparts.py
+++ b/hgext/infinitepush/bundleparts.py
@@ -12,6 +12,7 @@
changegroup,
error,
extensions,
+ node as nodemod,
revsetlang,
util,
)
@@ -48,7 +49,7 @@
params['bookprevnode'] = ''
bookmarks = repo._bookmarks
if bookmark in bookmarks:
- params['bookprevnode'] = bookmarks.changectx(bookmark).hex()
+ params['bookprevnode'] = nodemod.hex(bookmarks[bookmark])
# Do not send pushback bundle2 part with bookmarks if remotenames extension
# is enabled. It will be handled manually in `_push()`
To: durin42, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list