diff -r dc372251d4dc -r 8fb3e942473a mercurial/debugcommands.py --- a/mercurial/debugcommands.py Fri Apr 21 16:19:32 2023 +0200 +++ b/mercurial/debugcommands.py Fri Apr 21 14:33:33 2023 +0200 @@ -3677,6 +3677,36 @@ @command( + b'debug::stable-tail-sort-leaps', + [ + ( + b'T', + b'template', + b'{rev}', + _(b'display with template'), + _(b'TEMPLATE'), + ), + (b's', b'specific', False, _(b'restrict to specific leaps')), + ], + b'REV', +) +def debug_stable_tail_sort_leaps(ui, repo, rspec, template, specific, **opts): + """display the leaps in the stable-tail sort of a node, one per line""" + rev = logcmdutil.revsingle(repo, rspec).rev() + + if specific: + get_leaps = stabletailsort._find_specific_leaps_naive + else: + get_leaps = stabletailsort._find_all_leaps_naive + + displayer = logcmdutil.maketemplater(ui, repo, template) + for source, target in get_leaps(repo.changelog, rev): + displayer.show(repo[source]) + displayer.show(repo[target]) + ui.write(b'\n') + + +@command( b"debugbackupbundle", [ (