<div dir="ltr">On Tue, May 26, 2015 at 8:15 AM, Augie Fackler <span dir="ltr"><<a href="mailto:raf@durin42.com" target="_blank">raf@durin42.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, May 26, 2015 at 09:18:50AM -0500, Matt Mackall wrote:<br>
> # HG changeset patch<br>
> # User Matt Mackall <<a href="mailto:mpm@selenic.com">mpm@selenic.com</a>><br>
> # Date 1432640718 18000<br>
> #      Tue May 26 06:45:18 2015 -0500<br>
> # Node ID 1da062c1f925a0330ddafe7dc4ac7a380932035c<br>
> # Parent  605b1d32c1c011d56233f28923ee5354fce7e426<br>
> mergecopies: avoid slowdown from linkrev adjustment (issue4680)<br>
<br>
</span>derp, I even knew this was coming but queued v1. Queued this one as a<br>
replacement for the previous version.<br></blockquote><div><br></div><div>This should be queued for stable since it is a regression, no?<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
><br>
> checkcopies was using fctx.rev() which it was expecting would be<br>
> equivalent to linkrev() but was triggering the new _adjustlinkrev path.<br>
> This was making grafts and merges with large sets of potential copies<br>
> very expensive.<br>
><br>
> diff -r 605b1d32c1c0 -r 1da062c1f925 mercurial/copies.py<br>
> --- a/mercurial/copies.py     Sat May 23 15:55:04 2015 -0500<br>
> +++ b/mercurial/copies.py     Tue May 26 06:45:18 2015 -0500<br>
> @@ -456,7 +456,7 @@<br>
><br>
>          g1, g2 = f1.ancestors(), f2.ancestors()<br>
>          try:<br>
> -            f1r, f2r = f1.rev(), f2.rev()<br>
> +            f1r, f2r = f1.linkrev(), f2.linkrev()<br>
><br>
>              if f1r is None:<br>
>                  f1 = g1.next()<br>
> @@ -464,7 +464,7 @@<br>
>                  f2 = g2.next()<br>
><br>
>              while True:<br>
> -                f1r, f2r = f1.rev(), f2.rev()<br>
> +                f1r, f2r = f1.linkrev(), f2.linkrev()<br>
>                  if f1r > f2r:<br>
>                      f1 = g1.next()<br>
>                  elif f2r > f1r:<br>
> @@ -479,7 +479,7 @@<br>
>      of = None<br>
>      seen = set([f])<br>
>      for oc in ctx(f, m1[f]).ancestors():<br>
> -        ocr = oc.rev()<br>
> +        ocr = oc.linkrev()<br>
>          of = oc.path()<br>
>          if of in seen:<br>
>              # check limit late - grab last rename before<br>
> _______________________________________________<br>
> Mercurial-devel mailing list<br>
> <a href="mailto:Mercurial-devel@selenic.com">Mercurial-devel@selenic.com</a><br>
> <a href="https://selenic.com/mailman/listinfo/mercurial-devel" target="_blank">https://selenic.com/mailman/listinfo/mercurial-devel</a><br>
_______________________________________________<br>
Mercurial-devel mailing list<br>
<a href="mailto:Mercurial-devel@selenic.com">Mercurial-devel@selenic.com</a><br>
<a href="https://selenic.com/mailman/listinfo/mercurial-devel" target="_blank">https://selenic.com/mailman/listinfo/mercurial-devel</a><br>
</div></div></blockquote></div><br></div></div>