~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/workingtree.py

Merge WorkingTree implementation back from trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
470
470
    def get_file_byname(self, filename):
471
471
        return file(self.abspath(filename), 'rb')
472
472
 
473
 
    def get_symlink_target(self, file_id):
474
 
        file_id = osutils.safe_file_id(file_id)
475
 
        return os.readlink(self.abspath(self.id2path(file_id)))
476
 
 
477
473
    @needs_read_lock
478
474
    def annotate_iter(self, file_id):
479
475
        """See Tree.annotate_iter
849
845
            pb.finished()
850
846
        return conflicts
851
847
 
 
848
    @needs_read_lock
 
849
    def merge_modified(self):
 
850
        try:
 
851
            hashfile = self._control_files.get('merge-hashes')
 
852
        except errors.NoSuchFile:
 
853
            return {}
 
854
        merge_hashes = {}
 
855
        try:
 
856
            if hashfile.next() != MERGE_MODIFIED_HEADER_1 + '\n':
 
857
                raise errors.MergeModifiedFormatError()
 
858
        except StopIteration:
 
859
            raise errors.MergeModifiedFormatError()
 
860
        for s in RioReader(hashfile):
 
861
            file_id = s.get("file_id")
 
862
            if file_id not in self.inventory:
 
863
                continue
 
864
            hash = s.get("hash")
 
865
            if hash == self.get_file_sha1(file_id):
 
866
                merge_hashes[file_id] = hash
 
867
        return merge_hashes
 
868
 
 
869
    @needs_write_lock
 
870
    def mkdir(self, path, file_id=None):
 
871
        """See MutableTree.mkdir()."""
 
872
        if file_id is None:
 
873
            file_id = generate_ids.gen_file_id(os.path.basename(path))
 
874
        os.mkdir(self.abspath(path))
 
875
        self.add(path, file_id, 'directory')
 
876
        return file_id
 
877
 
 
878
    def get_symlink_target(self, file_id):
 
879
        file_id = osutils.safe_file_id(file_id)
 
880
        return os.readlink(self.id2abspath(file_id))
 
881
 
852
882
    @needs_write_lock
853
883
    def subsume(self, other_tree):
854
884
        def add_children(inventory, entry):