[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mercurial-devel
Subject:    Re: [PATCH STABLE V2] strip: fix revset usage (issue3604)
From:       Benoit Boissinot <bboissin () gmail ! com>
Date:       2012-08-31 21:44:13
Message-ID: CAJEfwFL8gO8U5dbJmkUJtsS4a0iZ_YakHEKaiXvBzX0w=XGNSA () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Pushed to crew-stable, thanks.

On Fri, Aug 31, 2012 at 11:32 PM, Pierre-Yves David <
pierre-yves.david@ens-lyon.org> wrote:

> # HG changeset patch
> # User Pierre-Yves David <pierre-yves.david@ens-lyon.org>
> # Date 1346448446 -7200
> # Branch stable
> # Node ID e2eef0b38ae72daef8d5f092d01a01f9e7f23c55
> # Parent  b0aad9fb87f947e821f0381d461f1794e73833a7
> strip: fix revset usage (issue3604)
>
> The `repair` code builds a giant revset query instead of using the "%lr"
> idiom.
> It is inefficient and crash when the number of stripped changeset is too
> big.
>
> This changeset replaces the bad code by a better revset usage.
>
> diff --git a/mercurial/repair.py b/mercurial/repair.py
> --- a/mercurial/repair.py
> +++ b/mercurial/repair.py
> @@ -111,9 +111,8 @@
>          saverevs.difference_update(descendants)
>      savebases = [cl.node(r) for r in saverevs]
>      stripbases = [cl.node(r) for r in tostrip]
> -    rset = ' or '.join([str(r) for r in tostrip])
> -    newbmtarget = repo.revs('sort(heads(ancestors(%r) - (%r)), -rev)',
> -                            rset, rset)
> +    newbmtarget = repo.revs('sort(heads((::%ld) - (%ld)), -rev)',
> +                            tostrip, tostrip)
>      if newbmtarget:
>          newbmtarget = newbmtarget[0]
>      else:
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel@selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>

[Attachment #5 (text/html)]

Pushed to crew-stable, thanks.<br><br><div class="gmail_quote">On Fri, Aug 31, 2012 \
at 11:32 PM, Pierre-Yves David <span dir="ltr">&lt;<a \
href="mailto:pierre-yves.david@ens-lyon.org" \
target="_blank">pierre-yves.david@ens-lyon.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"># HG changeset patch<br> # User Pierre-Yves David &lt;<a \
href="mailto:pierre-yves.david@ens-lyon.org">pierre-yves.david@ens-lyon.org</a>&gt;<br>
 # Date 1346448446 -7200<br>
# Branch stable<br>
# Node ID e2eef0b38ae72daef8d5f092d01a01f9e7f23c55<br>
# Parent  b0aad9fb87f947e821f0381d461f1794e73833a7<br>
strip: fix revset usage (issue3604)<br>
<br>
The `repair` code builds a giant revset query instead of using the &quot;%lr&quot; \
idiom.<br> It is inefficient and crash when the number of stripped changeset is too \
big.<br> <br>
This changeset replaces the bad code by a better revset usage.<br>
<br>
diff --git a/mercurial/repair.py b/mercurial/repair.py<br>
--- a/mercurial/repair.py<br>
+++ b/mercurial/repair.py<br>
@@ -111,9 +111,8 @@<br>
         saverevs.difference_update(descendants)<br>
     savebases = [cl.node(r) for r in saverevs]<br>
     stripbases = [cl.node(r) for r in tostrip]<br>
-    rset = &#39; or &#39;.join([str(r) for r in tostrip])<br>
-    newbmtarget = repo.revs(&#39;sort(heads(ancestors(%r) - (%r)), -rev)&#39;,<br>
-                            rset, rset)<br>
+    newbmtarget = repo.revs(&#39;sort(heads((::%ld) - (%ld)), -rev)&#39;,<br>
+                            tostrip, tostrip)<br>
     if newbmtarget:<br>
         newbmtarget = newbmtarget[0]<br>
     else:<br>
_______________________________________________<br>
Mercurial-devel mailing list<br>
<a href="mailto:Mercurial-devel@selenic.com">Mercurial-devel@selenic.com</a><br>
<a href="http://selenic.com/mailman/listinfo/mercurial-devel" \
target="_blank">http://selenic.com/mailman/listinfo/mercurial-devel</a><br> \
</blockquote></div><br>



_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@selenic.com
http://selenic.com/mailman/listinfo/mercurial-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic