<div dir="ltr"><div dir="ltr"><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Sep 7, 2018 at 8:08 AM Boris Feld <<a href="mailto:boris.feld@octobus.net">boris.feld@octobus.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"># HG changeset patch<br>
# User Boris Feld <<a href="mailto:boris.feld@octobus.net" target="_blank">boris.feld@octobus.net</a>><br>
# Date 1536267628 14400<br>
#      Thu Sep 06 17:00:28 2018 -0400<br>
# Node ID eb80c721aea9715e23dc35cdd119428aa120ea93<br>
# Parent  ab452995eafffa69c34e863e4d8c03e163d8f3ad<br>
# EXP-Topic issue5979<br>
# Available At <a href="https://bitbucket.org/octobus/mercurial-devel/" rel="noreferrer" target="_blank">https://bitbucket.org/octobus/mercurial-devel/</a><br>
#              hg pull <a href="https://bitbucket.org/octobus/mercurial-devel/" rel="noreferrer" target="_blank">https://bitbucket.org/octobus/mercurial-devel/</a> -r eb80c721aea9<br>
ancestors: actually iterate over ancestors in topological order (issue5979)<br>
<br>
This code previously used a dequeue logic, the first ancestors seen were the<br>
first ancestors to be emitted. In branching/merging situations, it can result<br>
in ancestors being yielded before their descendants, breaking the object<br>
contract.<br>
<br>
We got affected by this issue while working on the copy tracing code. At about<br>
the same time, Axel Hecht <<a href="mailto:axel@mozilla.com" target="_blank">axel@mozilla.com</a>> reported the issue and provided<br>
the test case used in this changeset. Thanks Axel.<br>
<br>
Running `hg perfancestors` does not show a significant difference between the<br>
old and the new version.<br></blockquote><div><br></div><div>In my hg repo, it went from 0.047230 to 0.093331, which is clearly significant. Maybe you made a last-minute change that made it slower? Or is my repo just different from yours?</div><div><br></div></div></div></div></div>