168
168
self.sources = MultipleRevisionSources(self.br1.repository,
169
169
self.br2.repository)
171
def intervene(self, ancestor, revision, revision_history=None):
172
from bzrlib.revision import get_intervening_revisions
173
return get_intervening_revisions(ancestor,revision, self.sources,
176
def test_intervene(self):
177
"""Find intermediate revisions, without requiring history"""
178
from bzrlib.errors import NotAncestor, NoSuchRevision
179
self.assertEquals(len(self.intervene('a@u-0-0', 'a@u-0-0')), 0)
180
self.assertEqual(self.intervene('a@u-0-0', 'a@u-0-1'), ['a@u-0-1'])
181
self.assertEqual(self.intervene('a@u-0-0', 'a@u-0-2'),
182
['a@u-0-1', 'a@u-0-2'])
183
self.assertEqual(self.intervene('a@u-0-0', 'b@u-0-3'),
184
['a@u-0-1', 'a@u-0-2', 'b@u-0-3'])
185
self.assertEqual(self.intervene('b@u-0-3', 'a@u-0-3'),
186
['b@u-0-4', 'a@u-0-3'])
187
self.assertEqual(self.intervene('a@u-0-2', 'a@u-0-3',
188
self.br1.revision_history()),
190
self.assertEqual(self.intervene('a@u-0-0', 'a@u-0-5',
191
self.br1.revision_history()),
192
['a@u-0-1', 'a@u-0-2', 'a@u-0-3', 'a@u-0-4',
194
self.assertEqual(self.intervene('a@u-0-0', 'b@u-0-6',
195
self.br1.revision_history()),
196
['a@u-0-1', 'a@u-0-2', 'a@u-0-3', 'a@u-0-4',
198
self.assertEqual(self.intervene('a@u-0-0', 'b@u-0-5'),
199
['a@u-0-1', 'a@u-0-2', 'b@u-0-3', 'b@u-0-4',
201
self.assertEqual(self.intervene('b@u-0-3', 'b@u-0-6',
202
self.br2.revision_history()),
203
['b@u-0-4', 'b@u-0-5', 'b@u-0-6'])
204
self.assertEqual(self.intervene('b@u-0-6', 'b@u-0-10'),
205
['b@u-0-7', 'b@u-0-8', 'b@u-0-9', 'b@u-0-10'])
206
self.assertEqual(self.intervene('b@u-0-6', 'b@u-0-10',
207
self.br2.revision_history()),
208
['b@u-0-7', 'b@u-0-8', 'b@u-0-9', 'b@u-0-10'])
209
self.assertRaises(NotAncestor, self.intervene, 'b@u-0-10', 'b@u-0-6',
210
self.br2.revision_history())
211
self.assertRaises(NoSuchRevision, self.intervene, 'c@u-0-10',
212
'b@u-0-6', self.br2.revision_history())
213
self.assertRaises(NoSuchRevision, self.intervene, 'b@u-0-10',
214
'c@u-0-6', self.br2.revision_history())
217
173
class MockRevisionSource(object):