~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/delta.py

  • Committer: Richard Wilbur
  • Date: 2016-02-04 19:07:28 UTC
  • mto: This revision was merged to the branch mainline in revision 6618.
  • Revision ID: richard.wilbur@gmail.com-20160204190728-p0zvfii6zase0fw7
Update COPYING.txt from the original http://www.gnu.org/licenses/gpl-2.0.txt  (Only differences were in whitespace.)  Thanks to Petr Stodulka for pointing out the discrepancy.

Show diffs side-by-side

added added

removed removed

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