/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 bzrlib/workingtree_4.py

  • Committer: Robert Collins
  • Date: 2010-05-06 11:08:10 UTC
  • mto: This revision was merged to the branch mainline in revision 5223.
  • Revision ID: robertc@robertcollins.net-20100506110810-h3j07fh5gmw54s25
Cleaner matcher matching revised unlocking protocol.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2008, 2009 Canonical Ltd
 
1
# Copyright (C) 2007-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
53
53
from bzrlib.decorators import needs_read_lock, needs_write_lock
54
54
from bzrlib.filters import filtered_input_file, internal_size_sha_file_byname
55
55
from bzrlib.inventory import Inventory, ROOT_ID, entry_factory
56
 
import bzrlib.mutabletree
57
56
from bzrlib.mutabletree import needs_tree_write_lock
58
57
from bzrlib.osutils import (
59
58
    file_kind,
1372
1371
 
1373
1372
 
1374
1373
class DirStateWorkingTreeFormat(WorkingTreeFormat3):
 
1374
 
1375
1375
    def initialize(self, a_bzrdir, revision_id=None, from_branch=None,
1376
1376
                   accelerator_tree=None, hardlink=False):
1377
1377
        """See WorkingTreeFormat.initialize().
1755
1755
            return None
1756
1756
        parent_index = self._get_parent_index()
1757
1757
        last_changed_revision = entry[1][parent_index][4]
1758
 
        return self._repository.get_revision(last_changed_revision).timestamp
 
1758
        try:
 
1759
            rev = self._repository.get_revision(last_changed_revision)
 
1760
        except errors.NoSuchRevision:
 
1761
            raise errors.FileTimestampUnavailable(self.id2path(file_id))
 
1762
        return rev.timestamp
1759
1763
 
1760
1764
    def get_file_sha1(self, file_id, path=None, stat_value=None):
1761
1765
        entry = self._get_entry(file_id=file_id, path=path)
1828
1832
        entry = self._get_entry(file_id=file_id)[1]
1829
1833
        if entry is None:
1830
1834
            raise errors.NoSuchId(tree=self, file_id=file_id)
1831
 
        return dirstate.DirState._minikind_to_kind[entry[1][0]]
 
1835
        parent_index = self._get_parent_index()
 
1836
        return dirstate.DirState._minikind_to_kind[entry[parent_index][0]]
1832
1837
 
1833
1838
    def stored_kind(self, file_id):
1834
1839
        """See Tree.stored_kind"""
1974
1979
        return result
1975
1980
 
1976
1981
    @classmethod
1977
 
    def make_source_parent_tree_compiled_dirstate(klass, test_case, source, target):
 
1982
    def make_source_parent_tree_compiled_dirstate(klass, test_case, source,
 
1983
                                                  target):
1978
1984
        from bzrlib.tests.test__dirstate_helpers import \
1979
 
            CompiledDirstateHelpersFeature
1980
 
        if not CompiledDirstateHelpersFeature.available():
1981
 
            from bzrlib.tests import UnavailableFeature
1982
 
            raise UnavailableFeature(CompiledDirstateHelpersFeature)
 
1985
            compiled_dirstate_helpers_feature
 
1986
        test_case.requireFeature(compiled_dirstate_helpers_feature)
1983
1987
        from bzrlib._dirstate_helpers_pyx import ProcessEntryC
1984
1988
        result = klass.make_source_parent_tree(source, target)
1985
1989
        result[1]._iter_changes = ProcessEntryC