104
104
f = self.reopen_file()
107
def test_get_delta_lines(self):
109
self.assertRaises(errors.RevisionNotPresent, f.get_delta, 'base')
110
# add texts that should trip the knit maximum delta chain threshold
111
# as well as doing parallel chains of data in knits.
112
# this is done by two chains of 25 insertions
113
f.add_lines('base', [], ['line\n'])
115
text_name = 'chain1-'
117
sha1s = {0 :'da6d3141cb4a5e6f464bf6e0518042ddc7bfd079',
118
1 :'45e21ea146a81ea44a821737acdb4f9791c8abe7',
119
2 :'e1f11570edf3e2a070052366c582837a4fe4e9fa',
120
3 :'26b4b8626da827088c514b8f9bbe4ebf181edda1',
121
4 :'e28a5510be25ba84d31121cff00956f9970ae6f6',
122
5 :'d63ec0ce22e11dcf65a931b69255d3ac747a318d',
123
6 :'2c2888d288cb5e1d98009d822fedfe6019c6a4ea',
124
7 :'95c14da9cafbf828e3e74a6f016d87926ba234ab',
125
8 :'779e9a0b28f9f832528d4b21e17e168c67697272',
126
9 :'1f8ff4e5c6ff78ac106fcfe6b1e8cb8740ff9a8f',
127
10:'131a2ae712cf51ed62f143e3fbac3d4206c25a05',
128
11:'c5a9d6f520d2515e1ec401a8f8a67e6c3c89f199',
129
12:'31a2286267f24d8bedaa43355f8ad7129509ea85',
130
13:'dc2a7fe80e8ec5cae920973973a8ee28b2da5e0a',
131
14:'2c4b1736566b8ca6051e668de68650686a3922f2',
132
15:'5912e4ecd9b0c07be4d013e7e2bdcf9323276cde',
133
16:'b0d2e18d3559a00580f6b49804c23fea500feab3',
134
17:'8e1d43ad72f7562d7cb8f57ee584e20eb1a69fc7',
135
18:'5cf64a3459ae28efa60239e44b20312d25b253f3',
136
19:'1ebed371807ba5935958ad0884595126e8c4e823',
137
20:'2aa62a8b06fb3b3b892a3292a068ade69d5ee0d3',
138
21:'01edc447978004f6e4e962b417a4ae1955b6fe5d',
139
22:'d8d8dc49c4bf0bab401e0298bb5ad827768618bb',
140
23:'c21f62b1c482862983a8ffb2b0c64b3451876e3f',
141
24:'c0593fe795e00dff6b3c0fe857a074364d5f04fc',
142
25:'dd1a1cf2ba9cc225c3aff729953e6364bf1d1855',
144
for depth in range(26):
145
new_version = text_name + '%s' % depth
146
text = text + ['line\n']
147
f.add_lines(new_version, [next_parent], text)
148
next_parent = new_version
150
text_name = 'chain2-'
152
for depth in range(26):
153
new_version = text_name + '%s' % depth
154
text = text + ['line\n']
155
f.add_lines(new_version, [next_parent], text)
156
next_parent = new_version
157
expected_delta = (None, '6bfa09d82ce3e898ad4641ae13dd4fdb9cf0d76b', [(0, 0, 1, [('base', 'line\n')])])
158
self.assertEqual(expected_delta, f.get_delta('base'))
160
next_name = 'chain1-'
161
for depth in range(26):
162
new_version = text_name + '%s' % depth
163
expected_delta = (next_parent, sha1s[depth], [(depth + 1, depth + 1, 1, [(new_version, 'line\n')])])
164
self.assertEqual(expected_delta, f.get_delta(new_version))
165
next_parent = new_version
167
next_name = 'chain2-'
168
for depth in range(26):
169
new_version = text_name + '%s' % depth
170
expected_delta = (next_parent, sha1s[depth], [(depth + 1, depth + 1, 1, [(new_version, 'line\n')])])
171
self.assertEqual(expected_delta, f.get_delta(new_version))
172
next_parent = new_version
107
174
def test_ancestry(self):
108
175
f = self.get_file()
109
176
self.assertEqual([], f.get_ancestry([]))