53
54
def __repr__(self):
54
55
return 'DictParentsProvider(%r)' % self.ancestry
56
@symbol_versioning.deprecated_method(symbol_versioning.one_one)
57
def get_parents(self, revisions):
58
return [self.ancestry.get(r, None) for r in revisions]
60
57
def get_parent_map(self, keys):
61
58
"""See _StackedParentsProvider.get_parent_map"""
62
59
ancestry = self.ancestry
71
68
def __repr__(self):
72
69
return "_StackedParentsProvider(%r)" % self._parent_providers
74
@symbol_versioning.deprecated_method(symbol_versioning.one_one)
75
def get_parents(self, revision_ids):
76
"""Find revision ids of the parents of a list of revisions
78
A list is returned of the same length as the input. Each entry
79
is a list of parent ids for the corresponding input revision.
81
[NULL_REVISION] is used as the parent of the first user-committed
82
revision. Its parent list is empty.
84
If the revision is not present (i.e. a ghost), None is used in place
85
of the list of parents.
87
found = self.get_parent_map(revision_ids)
88
return [found.get(r, None) for r in revision_ids]
90
71
def get_parent_map(self, keys):
91
72
"""Get a mapping of keys => parents
125
106
def __repr__(self):
126
107
return "%s(%r)" % (self.__class__.__name__, self._real_provider)
128
@symbol_versioning.deprecated_method(symbol_versioning.one_one)
129
def get_parents(self, revision_ids):
130
"""See _StackedParentsProvider.get_parents"""
131
found = self.get_parent_map(revision_ids)
132
return [found.get(r, None) for r in revision_ids]
134
109
def get_parent_map(self, keys):
135
110
"""See _StackedParentsProvider.get_parent_map"""
169
144
This should not normally be invoked directly, because there may be
170
145
specialized implementations for particular repository types. See
171
Repository.get_graph()
146
Repository.get_graph().
173
:param parents_provider: An object providing a get_parents call
174
conforming to the behavior of StackedParentsProvider.get_parents
148
:param parents_provider: An object providing a get_parent_map call
149
conforming to the behavior of
150
StackedParentsProvider.get_parent_map.
176
self.get_parents = parents_provider.get_parents
177
self.get_parent_map = parents_provider.get_parent_map
152
if getattr(parents_provider, 'get_parents', None) is not None:
153
self.get_parents = parents_provider.get_parents
154
if getattr(parents_provider, 'get_parent_map', None) is not None:
155
self.get_parent_map = parents_provider.get_parent_map
178
156
self._parents_provider = parents_provider
180
158
def __repr__(self):
226
204
return (left.difference(right).difference(common),
227
205
right.difference(left).difference(common))
207
@symbol_versioning.deprecated_method(symbol_versioning.one_one)
208
def get_parents(self, revisions):
209
"""Find revision ids of the parents of a list of revisions
211
A list is returned of the same length as the input. Each entry
212
is a list of parent ids for the corresponding input revision.
214
[NULL_REVISION] is used as the parent of the first user-committed
215
revision. Its parent list is empty.
217
If the revision is not present (i.e. a ghost), None is used in place
218
of the list of parents.
220
Deprecated in bzr 1.2 - please see get_parent_map.
222
parents = self.get_parent_map(revisions)
223
return [parent.get(r, None) for r in revisions]
225
def get_parent_map(self, revisions):
226
"""Get a map of key:parent_list for revisions.
228
This implementation delegates to get_parents, for old parent_providers
229
that do not supply get_parent_map.
232
for rev, parents in self.get_parents(revisions):
233
if parents is not None:
234
result[rev] = parents
229
237
def _make_breadth_first_searcher(self, revisions):
230
238
return _BreadthFirstSearcher(revisions, self)