Patchwork [11,of,11] revset: use `subset &` in bare `p2()`

login
register
mail settings
Submitter Pierre-Yves David
Date Sept. 25, 2014, 3:19 a.m.
Message ID <542389CF.7030008@ens-lyon.org>
Download mbox | patch
Permalink /patch/5976/
State Accepted
Headers show

Comments

Pierre-Yves David - Sept. 25, 2014, 3:19 a.m.
On 09/24/2014 01:43 PM, David Soria Parra wrote:
> Augie Fackler <raf@durin42.com> writes:
>
>> On Wed, Sep 24, 2014 at 1:50 PM, Pierre-Yves David
>> <pierre-yves.david@ens-lyon.org> wrote:
>>>
>>>
>>> On 09/24/2014 10:48 AM, Pierre-Yves David wrote:
>>>>
>>>>
>>>>
>>>> On 09/24/2014 10:43 AM, Augie Fackler wrote:
>>>>>
>>>>> On Wed, Sep 24, 2014 at 1:29 PM, Pierre-Yves David
>>>>> <pierre-yves.david@ens-lyon.org> wrote:
>>>>>>>
>>>>>>> Queued the lot, with english tweaks in log messages.
>>>>>>
>>>>>>
>>>>>>
>>>>>> You should probably base yourself onto on the current clowncopter tip as
>>>>>> this "depends" of other improvement pushed there by Durham.
>>>>>
>>>>>
>>>>>
>>>>> I thought mpm didn't want us to cross the streams?
>>>>
>>>>
>>>> I think this stand in general. Making and exception when a single long
>>>> series is reviewed by multiple people would make sense to me.
>>>>
>>>>>
>>>>> (Tests pass fine, so when things merge it'll work out, no?)
>>>>
>>>>
>>>> I do not garantee the performance of the result.
>>>
>>>
>>> (and future performance testing of this series will be hard. Current
>>> performance testing of the rest of this series requires a merge which is
>>> inconvenient too)
>>
>>
>> In that case, I've put my copyedited versions here for your clowncoptering:
>>
>> http://hg.durin42.com/hg-queued/#marmoute-copyedit
>
> Rebased and pushed to clowncopter. I had to force draft phases,
> apparently your server is publishing.

The test had not been run on the rebased version. test-revset.t was 
failing for valid reason (I'm ashamed). I've amended the faulty commit 
with the following diff and pushed the result to the clowncopter

          # the current behavior.



(the faulty commit is the one adding the __and__ to fullreposet

Patch

diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -2894,10 +2894,14 @@  class fullreposet(_spanset):
              # (this boldly assume all smartset are pure)
              #
              # `other` was used with "&", let's assume this is a set like
              # object.
              other = baseset(other - self._hiddenrevs)
+        elif not util.safehasattr(other, 'ascending'):
+            # "other" is _generatorset not a real smart set
+            # we fallback to the old way (sad kitten)
+            return super(fullreposet, self).__and__(other)

          # preserve order:
          #
          # this is probably useless and harmful in multiple case but 
this match