D3162: bookmarks: introduce a repo._bookmarks.ctx(mark) method and use it
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Fri Apr 6 14:43:26 EDT 2018
martinvonz updated this revision to Diff 7795.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D3162?vs=7789&id=7795
REVISION DETAIL
https://phab.mercurial-scm.org/D3162
AFFECTED FILES
mercurial/bookmarks.py
CHANGE DETAILS
diff --git a/mercurial/bookmarks.py b/mercurial/bookmarks.py
--- a/mercurial/bookmarks.py
+++ b/mercurial/bookmarks.py
@@ -119,6 +119,9 @@
def update(self, *others):
raise error.ProgrammingError("use 'bookmarks.applychanges' instead")
+ def ctx(self, mark):
+ return self._repo[self[mark]]
+
def applychanges(self, repo, tr, changes):
"""Apply a list of changes to bookmarks
"""
@@ -212,8 +215,8 @@
return []
rev = self._repo[target].rev()
anc = self._repo.changelog.ancestors([rev])
- bmctx = self._repo[self[mark]]
- divs = [self._repo[b].node() for b in self
+ bmctx = self.ctx(mark)
+ divs = [self[b] for b in self
if b.split('@', 1)[0] == mark.split('@', 1)[0]]
# allow resolving a single divergent bookmark even if moving
@@ -370,11 +373,11 @@
bmchanges = []
if marks[active] in parents:
new = repo[node]
- divs = [repo[b] for b in marks
+ divs = [marks.ctx(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, repo[marks[active]], new):
+ if validdest(repo, marks.ctx(active), new):
bmchanges.append((active, new.node()))
for bm in divergent2delete(repo, deletefrom, active):
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list