~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree_4.py

  • Committer: Robert Collins
  • Date: 2007-07-25 00:52:21 UTC
  • mfrom: (2650 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2651.
  • Revision ID: robertc@robertcollins.net-20070725005221-0ysm6il5mqnme3wz
Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
408
408
    def get_file_sha1(self, file_id, path=None, stat_value=None):
409
409
        # check file id is valid unconditionally.
410
410
        entry = self._get_entry(file_id=file_id, path=path)
411
 
        assert entry[0] is not None, 'what error should this raise'
 
411
        if entry[0] is None:
 
412
            raise errors.NoSuchId(self, file_id)
412
413
        if path is None:
413
414
            path = pathjoin(entry[0][0], entry[0][1]).decode('utf8')
414
415
 
1346
1347
        return "<%s of %s in %s>" % \
1347
1348
            (self.__class__.__name__, self._revision_id, self._dirstate)
1348
1349
 
1349
 
    def annotate_iter(self, file_id):
 
1350
    def annotate_iter(self, file_id,
 
1351
                      default_revision=_mod_revision.CURRENT_REVISION):
1350
1352
        """See Tree.annotate_iter"""
1351
 
        w = self._repository.weave_store.get_weave(file_id,
1352
 
                           self._repository.get_transaction())
 
1353
        w = self._get_weave(file_id)
1353
1354
        return w.annotate_iter(self.inventory[file_id].revision)
1354
1355
 
 
1356
    def _get_ancestors(self, default_revision):
 
1357
        return set(self._repository.get_ancestry(self._revision_id,
 
1358
                                                 topo_sorted=False))
1355
1359
    def _comparison_data(self, entry, path):
1356
1360
        """See Tree._comparison_data."""
1357
1361
        if entry is None:
1490
1494
            return parent_details[1]
1491
1495
        return None
1492
1496
 
 
1497
    @symbol_versioning.deprecated_method(symbol_versioning.zero_nineteen)
1493
1498
    def get_weave(self, file_id):
 
1499
        return self._get_weave(file_id)
 
1500
 
 
1501
    def _get_weave(self, file_id):
1494
1502
        return self._repository.weave_store.get_weave(file_id,
1495
1503
                self._repository.get_transaction())
1496
1504
 
1499
1507
 
1500
1508
    def get_file_lines(self, file_id):
1501
1509
        ie = self.inventory[file_id]
1502
 
        return self._repository.weave_store.get_weave(file_id,
1503
 
                self._repository.get_transaction()).get_lines(ie.revision)
 
1510
        return self._get_weave(file_id).get_lines(ie.revision)
1504
1511
 
1505
1512
    def get_file_size(self, file_id):
1506
1513
        return self.inventory[file_id].text_size
1682
1689
        """
1683
1690
        utf8_decode = cache_utf8._utf8_decode
1684
1691
        _minikind_to_kind = dirstate.DirState._minikind_to_kind
 
1692
        cmp_by_dirs = dirstate.cmp_by_dirs
1685
1693
        # NB: show_status depends on being able to pass in non-versioned files
1686
1694
        # and report them as unknown
1687
1695
        # TODO: handle extra trees in the dirstate.
2168
2176
                   current_block is not None):
2169
2177
                if (current_dir_info and current_block
2170
2178
                    and current_dir_info[0][0] != current_block[0]):
2171
 
                    if current_dir_info[0][0].split('/') < current_block[0].split('/'):
 
2179
                    if cmp_by_dirs(current_dir_info[0][0], current_block[0]) < 0:
2172
2180
                        # filesystem data refers to paths not covered by the dirblock.
2173
2181
                        # this has two possibilities:
2174
2182
                        # A) it is versioned but empty, so there is no block for it