/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tree.py

  • Committer: Jelmer Vernooij
  • Date: 2018-12-18 20:55:37 UTC
  • mfrom: (7223 work)
  • mto: This revision was merged to the branch mainline in revision 7231.
  • Revision ID: jelmer@jelmer.uk-20181218205537-td8qyejigxki0xmn
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
70
70
        return (isinstance(other, TreeEntry)
71
71
                and other.__class__ == self.__class__)
72
72
 
 
73
    kind = None
 
74
 
73
75
    def kind_character(self):
74
76
        return "???"
75
77
 
77
79
class TreeDirectory(TreeEntry):
78
80
    """See TreeEntry. This is a directory in a working tree."""
79
81
 
 
82
    kind = 'directory'
 
83
 
80
84
    def kind_character(self):
81
85
        return "/"
82
86
 
84
88
class TreeFile(TreeEntry):
85
89
    """See TreeEntry. This is a regular file in a working tree."""
86
90
 
 
91
    kind = 'file'
 
92
 
87
93
    def kind_character(self):
88
94
        return ''
89
95
 
91
97
class TreeLink(TreeEntry):
92
98
    """See TreeEntry. This is a symlink in a working tree."""
93
99
 
 
100
    kind = 'symlink'
 
101
 
94
102
    def kind_character(self):
95
103
        return ''
96
104
 
98
106
class TreeReference(TreeEntry):
99
107
    """See TreeEntry. This is a reference to a nested tree in a working tree."""
100
108
 
 
109
    kind = 'tree-reference'
 
110
 
101
111
    def kind_character(self):
102
112
        return '+'
103
113
 
262
272
        :param include_root: Whether to include the entry for the tree root
263
273
        :param from_dir: Directory under which to list files
264
274
        :param recursive: Whether to list files recursively
265
 
        :return: iterator over tuples of (path, versioned, kind, file_id,
266
 
            inventory entry)
 
275
        :return: iterator over tuples of
 
276
            (path, versioned, kind, inventory entry)
267
277
        """
268
278
        raise NotImplementedError(self.list_files)
269
279
 
1356
1366
    :return: The canonical path
1357
1367
    """
1358
1368
    # go walkin...
1359
 
    cur_id = tree.get_root_id()
1360
1369
    cur_path = ''
1361
1370
    bit_iter = iter(path.split("/"))
1362
1371
    for elt in bit_iter:
1363
1372
        lelt = normalize(elt)
1364
1373
        new_path = None
1365
1374
        try:
1366
 
            for child in tree.iter_child_entries(cur_path, cur_id):
 
1375
            for child in tree.iter_child_entries(cur_path):
1367
1376
                try:
1368
1377
                    if child.name == elt:
1369
1378
                        # if we found an exact match, we can stop now; if
1370
1379
                        # we found an approximate match we need to keep
1371
1380
                        # searching because there might be an exact match
1372
1381
                        # later.
1373
 
                        cur_id = child.file_id
1374
1382
                        new_path = osutils.pathjoin(cur_path, child.name)
1375
1383
                        break
1376
1384
                    elif normalize(child.name) == lelt:
1377
 
                        cur_id = child.file_id
1378
1385
                        new_path = osutils.pathjoin(cur_path, child.name)
1379
1386
                except errors.NoSuchId:
1380
1387
                    # before a change is committed we can see this error...