~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/diff.py

Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
import time
29
29
 
30
30
from bzrlib import (
31
 
    branch as _mod_branch,
32
31
    bzrdir,
33
32
    commands,
34
33
    errors,
42
41
from bzrlib.symbol_versioning import (
43
42
        deprecated_function,
44
43
        one_zero,
45
 
        one_three
46
44
        )
47
45
from bzrlib.trace import mutter, warning
48
46
 
448
446
                return branch.basis_tree()
449
447
        else:
450
448
            return tree
451
 
    if not spec.needs_branch():
452
 
        branch = _mod_branch.Branch.open(spec.get_branch())
453
 
    revision_id = spec.as_revision_id(branch)
454
 
    return branch.repository.revision_tree(revision_id)
 
449
    revision = spec.in_store(branch)
 
450
    revision_id = revision.rev_id
 
451
    rev_branch = revision.branch
 
452
    return rev_branch.repository.revision_tree(revision_id)
455
453
 
456
454
 
457
455
def _relative_paths_in_tree(tree, paths):
542
540
        raise errors.PathsDoNotExist(sorted(s))
543
541
 
544
542
 
545
 
@deprecated_function(one_three)
546
543
def get_prop_change(meta_modified):
547
544
    if meta_modified:
548
545
        return " (properties changed)"
549
546
    else:
550
547
        return  ""
551
548
 
552
 
def get_executable_change(old_is_x, new_is_x):
553
 
    descr = { True:"+x", False:"-x", None:"??" }
554
 
    if old_is_x != new_is_x:
555
 
        return ["%s to %s" % (descr[old_is_x], descr[new_is_x],)]
556
 
    else:
557
 
        return []
558
 
 
559
549
 
560
550
class DiffPath(object):
561
551
    """Base type for command object that compare files"""
964
954
            old_present = (kind[0] is not None and versioned[0])
965
955
            new_present = (kind[1] is not None and versioned[1])
966
956
            renamed = (parent[0], name[0]) != (parent[1], name[1])
967
 
 
968
 
            properties_changed = []
969
 
            properties_changed.extend(get_executable_change(executable[0], executable[1]))
970
 
 
971
 
            if properties_changed:
972
 
                prop_str = " (properties changed: %s)" % (", ".join(properties_changed),)
973
 
            else:
974
 
                prop_str = ""
975
 
 
 
957
            prop_str = get_prop_change(executable[0] != executable[1])
976
958
            if (old_present, new_present) == (True, False):
977
959
                self.to_file.write("=== removed %s '%s'\n" %
978
960
                                   (kind[0], oldpath_encoded))