# HG changeset patch # User Pierre-Yves David # Date 1490322176 -3600 # Node ID afb35ad42040fc1cc936d8ea5116544ff6836856 # Parent ecb46c7ee281dd821ad03e21aae077b72ee2c005 stablesort: allow a callback to be triggered on merge Storing some information as we sort is going to be useful to avoid performing multiple sort while computing the stablerange. diff --git a/hgext3rd/evolve/stablerange.py b/hgext3rd/evolve/stablerange.py --- a/hgext3rd/evolve/stablerange.py +++ b/hgext3rd/evolve/stablerange.py @@ -46,7 +46,7 @@ displayer.flush(ctx) displayer.close() -def stablesort(repo, revs): +def stablesort(repo, revs, mergecallback=None): """return '::revs' topologically sorted in "stable" order This is a depth first traversal starting from 'nullrev', using node as a @@ -113,6 +113,8 @@ assert not seen[current] seen[current] = True result.append(current) # could be yield, cf earlier comment + if mergecallback is not None and p2 != nullrev: + mergecallback(result, current) cs = children[current] if not cs: current = None