diff -r 081605c2e9b6 -r 0edb545503fe hgext/evolve.py --- a/hgext/evolve.py Sat Mar 12 13:59:07 2016 +0800 +++ b/hgext/evolve.py Thu Mar 17 09:39:35 2016 -0700 @@ -1454,9 +1454,14 @@ revs = repo.revs(targetcat+'()') if revopt: revs = scmutil.revrange(repo, revopt) & revs - elif not anyopt and targetcat == 'unstable': - revs = set(_aspiringdescendant(repo, - repo.revs('(.::) - obsolete()::'))) + elif not anyopt: + topic = getattr(repo, 'currenttopic', '') + if topic: + revs = repo.revs('topic(%s)', topic) & revs + elif targetcat == 'unstable': + revs = _aspiringdescendant(repo, + repo.revs('(.::) - obsolete()::')) + revs = set(revs) if targetcat == 'divergent': # Pick one divergent per group of divergents revs = _dedupedivergents(repo, revs)