[PATCH 1 of 2 topic-ext] init: cache repo.topics

timeless timeless at gmail.com
Fri Aug 26 17:40:28 EDT 2016


i don't have the resources to push this further for at least a week,
if you could take it and run with it, that'd be great...

On Fri, Aug 26, 2016 at 5:22 PM, Pierre-Yves David
<pierre-yves.david at ens-lyon.org> wrote:
>
>
> On 08/26/2016 06:59 PM, timeless wrote:
>>
>> # HG changeset patch
>> # User timeless at gmail.com
>> # Date 1472230322 0
>> #      Fri Aug 26 16:52:02 2016 +0000
>> # Node ID 81def069bd64c516610e507279070cef5ca72d7f
>> # Parent  cf9414f2b5cddd65d21041527981d15a6fb6fd67
>> init: cache repo.topics
>
>
> Thanks for looking into this. That turned out a less scary step that one
> might have expected :-)
>
>> diff -r cf9414f2b5cd -r 81def069bd64 hgext3rd/topic/__init__.py
>> --- a/hgext3rd/topic/__init__.py        Tue Aug 23 21:18:47 2016 +0200
>> +++ b/hgext3rd/topic/__init__.py        Fri Aug 26 16:52:02 2016 +0000
>> @@ -144,10 +144,13 @@
>>
>>          @property
>>          def topics(self):
>> +            if self._topics is not None:
>> +                return self._topics
>>              topics = set(['', self.currenttopic])
>>              for c in self.set('not public()'):
>>                  topics.add(c.topic())
>>              topics.remove('')
>> +            self._topics = topics
>>              return topics
>>
>>          @property
>> @@ -167,6 +170,7 @@
>>
>>          def invalidatecaches(self):
>>              super(topicrepo, self).invalidatecaches()
>> +            self._topics = None
>
>
> I'm afraid this is a bit to weak as I'm not sure 'invalidatecaches' in
> called in all the necessary case. Using 'invalidatevolatilesets' -might- be
> a bit too much but will probably do the trick.
>
> Eventually we should probably dig a bit more and document what to expect
> from the various cache invalidation level.
>
> --
> Pierre-Yves David


More information about the Mercurial-devel mailing list