~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/log.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-10-16 10:03:21 UTC
  • mfrom: (1988.4.6 dotted-revno-input.)
  • Revision ID: pqm@pqm.ubuntu.com-20061016100321-c4951c9fc020dbd0
(Robert Collins) Output dotted decimal revision numbers during log, and accept them as revision specifiers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
from itertools import izip
55
55
import re
56
56
 
 
57
from bzrlib import symbol_versioning
57
58
import bzrlib.errors as errors
 
59
from bzrlib.symbol_versioning import deprecated_method, zero_eleven
58
60
from bzrlib.trace import mutter
59
61
from bzrlib.tsort import merge_sort
60
62
 
202
204
        mainline_revs.insert(0, None)
203
205
    else:
204
206
        mainline_revs.insert(0, which_revs[start_revision-2][1])
205
 
    if getattr(lf, 'show_merge', None) is not None:
206
 
        include_merges = True 
 
207
    # how should we show merged revisions ?
 
208
    # old api: show_merge. New api: show_merge_revno
 
209
    show_merge_revno = getattr(lf, 'show_merge_revno', None)
 
210
    show_merge = getattr(lf, 'show_merge', None)
 
211
    if show_merge is None and show_merge_revno is None:
 
212
        # no merged-revno support
 
213
        include_merges = False
207
214
    else:
208
 
        include_merges = False 
 
215
        include_merges = True
 
216
    if show_merge is not None and show_merge_revno is None:
 
217
        # tell developers to update their code
 
218
        symbol_versioning.warn('LogFormatters should provide show_merge_revno '
 
219
            'instead of show_merge since bzr 0.11.',
 
220
            DeprecationWarning, stacklevel=3)
209
221
    view_revisions = list(get_view_revisions(mainline_revs, rev_nos, branch,
210
222
                          direction, include_merges=include_merges))
211
223
 
253
265
 
254
266
            lf.show(revno, rev, delta)
255
267
        else:
256
 
            lf.show_merge(rev, merge_depth)
 
268
            if show_merge_revno is None:
 
269
                lf.show_merge(rev, merge_depth)
 
270
            else:
 
271
                lf.show_merge_revno(rev, merge_depth, revno)
257
272
 
258
273
 
259
274
def get_view_revisions(mainline_revs, rev_nos, branch, direction,
267
282
        if direction == 'reverse':
268
283
            revision_ids.reverse()
269
284
        for revision_id in revision_ids:
270
 
            yield revision_id, rev_nos[revision_id], 0
 
285
            yield revision_id, str(rev_nos[revision_id]), 0
271
286
        return
272
287
    merge_sorted_revisions = merge_sort(
273
288
        branch.repository.get_revision_graph(mainline_revs[-1]),
274
289
        mainline_revs[-1],
275
 
        mainline_revs)
 
290
        mainline_revs,
 
291
        generate_revno=True)
276
292
 
277
293
    if direction == 'forward':
278
294
        # forward means oldest first.
282
298
 
283
299
    revision_history = branch.revision_history()
284
300
 
285
 
    for sequence, rev_id, merge_depth, end_of_merge in merge_sorted_revisions:
286
 
        yield rev_id, rev_nos.get(rev_id), merge_depth
 
301
    for sequence, rev_id, merge_depth, revno, end_of_merge in merge_sorted_revisions:
 
302
        yield rev_id, '.'.join(map(str, revno)), merge_depth
287
303
 
288
304
 
289
305
def reverse_by_depth(merge_sorted_revisions, _depth=0):
329
345
    def show(self, revno, rev, delta):
330
346
        return self._show_helper(revno=revno, rev=rev, delta=delta)
331
347
 
 
348
    @deprecated_method(zero_eleven)
332
349
    def show_merge(self, rev, merge_depth):
333
350
        return self._show_helper(rev=rev, indent='    '*merge_depth, merged=True, delta=None)
334
351
 
 
352
    def show_merge_revno(self, rev, merge_depth, revno):
 
353
        """Show a merged revision rev, with merge_depth and a revno."""
 
354
        return self._show_helper(rev=rev, revno=revno,
 
355
            indent='    '*merge_depth, merged=True, delta=None)
 
356
 
335
357
    def _show_helper(self, rev=None, revno=None, indent='', merged=False, delta=None):
336
358
        """Show a revision, either merged or not."""
337
359
        from bzrlib.osutils import format_date
338
360
        to_file = self.to_file
339
361
        print >>to_file,  indent+'-' * 60
340
362
        if revno is not None:
341
 
            print >>to_file,  'revno:', revno
 
363
            print >>to_file,  indent+'revno:', revno
342
364
        if merged:
343
365
            print >>to_file,  indent+'merged:', rev.revision_id
344
366
        elif self.show_ids:
375
397
        to_file = self.to_file
376
398
        date_str = format_date(rev.timestamp, rev.timezone or 0,
377
399
                            self.show_timezone)
378
 
        print >>to_file, "%5d %s\t%s" % (revno, self.short_committer(rev),
 
400
        print >>to_file, "%5s %s\t%s" % (revno, self.short_committer(rev),
379
401
                format_date(rev.timestamp, rev.timezone or 0,
380
402
                            self.show_timezone, date_fmt="%Y-%m-%d",
381
403
                           show_offset=False))
428
450
        out = []
429
451
        if revno:
430
452
            # show revno only when is not None
431
 
            out.append("%d:" % revno)
 
453
            out.append("%s:" % revno)
432
454
        out.append(self.truncate(self.short_committer(rev), 20))
433
455
        out.append(self.date_string(rev))
434
456
        out.append(rev.get_summary())