257
258
generate_delta = verbose and getattr(lf, 'supports_delta', False)
259
def iter_revisions():
260
# r = revision, n = revno, d = merge depth
261
revision_ids = [r for r, n, d in view_revisions]
263
repository = branch.repository
266
revisions = repository.get_revisions(revision_ids[:num])
268
deltas = repository.get_deltas_for_revisions(revisions)
269
cur_deltas = dict(izip((r.revision_id for r in revisions),
271
for revision in revisions:
272
yield revision, cur_deltas.get(revision.revision_id)
273
revision_ids = revision_ids[num:]
274
num = min(int(num * 1.5), 200)
276
260
# now we just print all the revisions
278
for ((rev_id, revno, merge_depth), (rev, delta)) in \
279
izip(view_revisions, iter_revisions()):
262
for (rev_id, revno, merge_depth), rev, delta in _iter_revisions(
263
branch.repository, view_revisions, generate_delta):
282
265
if not searchRE.search(rev.message):
277
def _iter_revisions(repository, view_revisions, generate_delta):
279
view_revisions = iter(view_revisions)
281
cur_view_revisions = [d for x, d in zip(range(num), view_revisions)]
282
if len(cur_view_revisions) == 0:
285
# r = revision, n = revno, d = merge depth
286
revision_ids = [r for (r, n, d) in cur_view_revisions]
287
revisions = repository.get_revisions(revision_ids)
289
deltas = repository.get_deltas_for_revisions(revisions)
290
cur_deltas = dict(izip((r.revision_id for r in revisions),
292
for view_data, revision in izip(cur_view_revisions, revisions):
293
yield view_data, revision, cur_deltas.get(revision.revision_id)
294
num = min(int(num * 1.5), 200)
294
297
def _get_mainline_revs(branch, start_revision, end_revision):
295
298
"""Get the mainline revisions from the branch.