Mercurial > hg-stable
changeset 36439:72da480db4a5
histedit: resolve revs before evaluating %ld revset
We want to stop relying on basectx.__int__. That means we can't
use the %ld revset operator with an iterable of contexts. So
we expand an iterable of contexts into a list of revs before calling
into the revset.
Perhaps it would be worthwhile to add a revset format operator
that recognizes context instances so we can just pass contexts
as revset arguments?
Differential Revision: https://phab.mercurial-scm.org/D2431
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 24 Feb 2018 11:04:21 -0800 |
parents | 83bade6206d4 |
children | 67ec4ad815e6 |
files | hgext/histedit.py |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/histedit.py Sat Feb 24 11:20:24 2018 -0800 +++ b/hgext/histedit.py Sat Feb 24 11:04:21 2018 -0800 @@ -1356,11 +1356,12 @@ When keep is false, the specified set can't have children.""" ctxs = list(repo.set('%n::%n', old, new)) if ctxs and not keep: + revs = [ctx.rev() for ctx in ctxs] if (not obsolete.isenabled(repo, obsolete.allowunstableopt) and - repo.revs('(%ld::) - (%ld)', ctxs, ctxs)): + repo.revs('(%ld::) - (%ld)', revs, revs)): raise error.Abort(_('can only histedit a changeset together ' 'with all its descendants')) - if repo.revs('(%ld) and merge()', ctxs): + if repo.revs('(%ld) and merge()', revs): raise error.Abort(_('cannot edit history that contains merges')) root = ctxs[0] # list is already sorted by repo.set if not root.mutable():