Merge lp:~jelmer/bzr-search/lazy-xml into lp:bzr-search

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Robert Collins
Approved revision: 86
Merged at revision: 86
Proposed branch: lp:~jelmer/bzr-search/lazy-xml
Merge into: lp:bzr-search
Diff against target: 79 lines (+35/-27)
1 file modified
index.py (+35/-27)
To merge this branch: bzr merge lp:~jelmer/bzr-search/lazy-xml
Reviewer Review Type Date Requested Status
Robert Collins (community) Approve
Review via email: mp+53394@code.launchpad.net

This proposal supersedes a proposal from 2011-03-14.

Description of the change

Add lazy function for determining XML serializers.

This prevents them from being imported every time bzr-search is loaded.

To post a comment you must log in.
Revision history for this message
Robert Collins (lifeless) wrote : Posted in a previous version of this proposal

This seems to be much more than that - have you included your rejected
other branch perhaps?

Revision history for this message
Jelmer Vernooij (jelmer) wrote : Posted in a previous version of this proposal

Argh. Cherrypicked the right changes now. I should not call things I've modified "trunk".

Revision history for this message
Jelmer Vernooij (jelmer) wrote :

ping?

Revision history for this message
Robert Collins (lifeless) :
review: Approve
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Thanks! Can you merge?

Revision history for this message
Robert Collins (lifeless) wrote :

Future request, can you please include NEWS entries? Thanks.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'index.py'
--- index.py 2011-02-01 04:20:25 +0000
+++ index.py 2011-03-15 10:18:32 +0000
@@ -46,32 +46,40 @@
46from bzrlib.plugins.search.transport import FileView46from bzrlib.plugins.search.transport import FileView
47from bzrlib.multiparent import NewText47from bzrlib.multiparent import NewText
48from bzrlib.revision import NULL_REVISION48from bzrlib.revision import NULL_REVISION
49xml_serializers = []49
50try:50_xml_serializers = None
51 from bzrlib.xml4 import _Serializer_v451def xml_serializers():
52 xml_serializers.append(_Serializer_v4)52 global _xml_serializers
53except ImportError:53 if _xml_serializers is not None:
54 pass54 return _xml_serializers
55try:55 _xml_serializers = []
56 from bzrlib.xml5 import Serializer_v556 try:
57 xml_serializers.append(Serializer_v5)57 from bzrlib.xml4 import _Serializer_v4
58except ImportError:58 _xml_serializers.append(_Serializer_v4)
59 pass59 except ImportError:
60try:60 pass
61 from bzrlib.xml6 import Serializer_v661 try:
62 xml_serializers.append(Serializer_v6)62 from bzrlib.xml5 import Serializer_v5
63except ImportError:63 _xml_serializers.append(Serializer_v5)
64 pass64 except ImportError:
65try:65 pass
66 from bzrlib.xml7 import Serializer_v766 try:
67 xml_serializers.append(Serializer_v7)67 from bzrlib.xml6 import Serializer_v6
68except ImportError:68 _xml_serializers.append(Serializer_v6)
69 pass69 except ImportError:
70try:70 pass
71 from bzrlib.xml8 import Serializer_v871 try:
72 xml_serializers.append(Serializer_v8)72 from bzrlib.xml7 import Serializer_v7
73except ImportError:73 _xml_serializers.append(Serializer_v7)
74 pass74 except ImportError:
75 pass
76 try:
77 from bzrlib.xml8 import Serializer_v8
78 _xml_serializers.append(Serializer_v8)
79 except ImportError:
80 pass
81 return _xml_serializers
82
75from bzrlib.transport import get_transport83from bzrlib.transport import get_transport
76from bzrlib.tsort import topo_sort84from bzrlib.tsort import topo_sort
7785
@@ -717,7 +725,7 @@
717 bar.update("Extract revision paths", offset, groups)725 bar.update("Extract revision paths", offset, groups)
718 inventory_group = order[offset * group_size:(offset + 1) * group_size]726 inventory_group = order[offset * group_size:(offset + 1) * group_size]
719 serializer = repository._serializer727 serializer = repository._serializer
720 if type(serializer) in xml_serializers:728 if type(serializer) in xml_serializers():
721 # Fast path for flat-file serializers.729 # Fast path for flat-file serializers.
722 group_keys = [(revid,) for revid in inventory_group]730 group_keys = [(revid,) for revid in inventory_group]
723 stream = repository.inventories.get_record_stream(731 stream = repository.inventories.get_record_stream(

Subscribers

People subscribed via source and target branches

to all changes: