~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/delta.py

  • Committer: Martin von Gagern
  • Date: 2011-06-01 08:22:24 UTC
  • mto: This revision was merged to the branch mainline in revision 6009.
  • Revision ID: martin.vgagern@gmx.net-20110601082224-jurvwsbmy9jarued
Make kind markers optional.

Show diffs side-by-side

added added

removed removed

Lines of Context:
174
174
    """Report changes between two trees"""
175
175
 
176
176
    def __init__(self, output=None, suppress_root_add=True,
177
 
                 output_file=None, unversioned_filter=None, view_info=None):
 
177
                 output_file=None, unversioned_filter=None, view_info=None,
 
178
                 kind_marker=None):
178
179
        """Constructor
179
180
 
180
181
        :param output: a function with the signature of trace.note, i.e.
189
190
        :param view_info: A tuple of view_name,view_files if only
190
191
            items inside a view are to be reported on, or None for
191
192
            no view filtering.
 
193
        :param kind_marker: Function to get kind decoration symbols,
 
194
            None for default, or False to disable decorations.
192
195
        """
193
196
        if output_file is not None:
194
197
            if output is not None:
213
216
                              'unversioned': '?', # versioned in neither
214
217
                              }
215
218
        self.unversioned_filter = unversioned_filter
 
219
        if kind_marker is False:
 
220
            def kind_marker(kind):
 
221
                return ''
 
222
        self.kind_marker = kind_marker or osutils.kind_marker
216
223
        if view_info is None:
217
224
            self.view_name = None
218
225
            self.view_files = []
267
274
            # if the file is not missing in the source, we show its kind
268
275
            # when we show two paths.
269
276
            if kind[0] is not None:
270
 
                old_path += osutils.kind_marker(kind[0])
 
277
                old_path += self.kind_marker(kind[0])
271
278
            old_path += " => "
272
279
        elif versioned == 'removed':
273
280
            # not present in target
282
289
            rename = self.versioned_map[versioned]
283
290
        # we show the old kind on the new path when the content is deleted.
284
291
        if modified == 'deleted':
285
 
            path += osutils.kind_marker(kind[0])
 
292
            path += self.kind_marker(kind[0])
286
293
        # otherwise we always show the current kind when there is one
287
294
        elif kind[1] is not None:
288
 
            path += osutils.kind_marker(kind[1])
 
295
            path += self.kind_marker(kind[1])
289
296
        if exe_change:
290
297
            exe = '*'
291
298
        else:
340
347
                        exe_change, kind)
341
348
 
342
349
def report_delta(to_file, delta, short_status=False, show_ids=False, 
343
 
         show_unchanged=False, indent='', filter=None):
 
350
         show_unchanged=False, indent='', filter=None, no_decorate=False):
344
351
    """Output this delta in status-like form to to_file.
345
352
 
346
353
    :param to_file: A file-like object where the output is displayed.
358
365
 
359
366
    :param filter: A callable receiving a path and a file id and
360
367
        returning True if the path should be displayed.
 
368
 
 
369
    :param no_decorate: Do not add special symbols for symlinks or
 
370
        modified metadata.
361
371
    """
362
372
 
363
373
    def decorate_path(path, kind, meta_modified=None):
 
374
        if no_decorate:
 
375
            return path
364
376
        if kind == 'directory':
365
377
            path += '/'
366
378
        elif kind == 'symlink':