~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/delta.py

(jameinel) (bug #780544) when updating the WT,
 allow it to be done with a fast delta,
 rather than setting the state from scratch. (John A Meinel)

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