/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/transform.py

  • Committer: Robert Collins
  • Date: 2010-05-11 08:36:16 UTC
  • mto: This revision was merged to the branch mainline in revision 5223.
  • Revision ID: robertc@robertcollins.net-20100511083616-b8fjb19zomwupid0
Make all lock methods return Result objects, rather than lock_read returning self, as per John's review.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
    annotate,
26
26
    bencode,
27
27
    bzrdir,
28
 
    commit,
29
28
    delta,
30
29
    errors,
31
30
    inventory,
928
927
        """
929
928
        return _PreviewTree(self)
930
929
 
931
 
    def commit(self, branch, message, merge_parents=None, strict=False,
932
 
               timestamp=None, timezone=None, committer=None, authors=None,
933
 
               revprops=None, revision_id=None):
 
930
    def commit(self, branch, message, merge_parents=None, strict=False):
934
931
        """Commit the result of this TreeTransform to a branch.
935
932
 
936
933
        :param branch: The branch to commit to.
937
934
        :param message: The message to attach to the commit.
938
 
        :param merge_parents: Additional parent revision-ids specified by
939
 
            pending merges.
940
 
        :param strict: If True, abort the commit if there are unversioned
941
 
            files.
942
 
        :param timestamp: if not None, seconds-since-epoch for the time and
943
 
            date.  (May be a float.)
944
 
        :param timezone: Optional timezone for timestamp, as an offset in
945
 
            seconds.
946
 
        :param committer: Optional committer in email-id format.
947
 
            (e.g. "J Random Hacker <jrandom@example.com>")
948
 
        :param authors: Optional list of authors in email-id format.
949
 
        :param revprops: Optional dictionary of revision properties.
950
 
        :param revision_id: Optional revision id.  (Specifying a revision-id
951
 
            may reduce performance for some non-native formats.)
 
935
        :param merge_parents: Additional parents specified by pending merges.
952
936
        :return: The revision_id of the revision committed.
953
937
        """
954
938
        self._check_malformed()
971
955
        if self._tree.get_revision_id() != last_rev_id:
972
956
            raise ValueError('TreeTransform not based on branch basis: %s' %
973
957
                             self._tree.get_revision_id())
974
 
        revprops = commit.Commit.update_revprops(revprops, branch, authors)
975
 
        builder = branch.get_commit_builder(parent_ids,
976
 
                                            timestamp=timestamp,
977
 
                                            timezone=timezone,
978
 
                                            committer=committer,
979
 
                                            revprops=revprops,
980
 
                                            revision_id=revision_id)
 
958
        builder = branch.get_commit_builder(parent_ids)
981
959
        preview = self.get_preview_tree()
982
960
        list(builder.record_iter_changes(preview, last_rev_id,
983
961
                                         self.iter_changes()))
1657
1635
                      or trans_id in self._new_parent):
1658
1636
                    try:
1659
1637
                        mover.rename(full_path, self._limbo_name(trans_id))
1660
 
                    except errors.TransformRenameFailed, e:
 
1638
                    except OSError, e:
1661
1639
                        if e.errno != errno.ENOENT:
1662
1640
                            raise
1663
1641
                    else:
1688
1666
                if trans_id in self._needs_rename:
1689
1667
                    try:
1690
1668
                        mover.rename(self._limbo_name(trans_id), full_path)
1691
 
                    except errors.TransformRenameFailed, e:
 
1669
                    except OSError, e:
1692
1670
                        # We may be renaming a dangling inventory id
1693
1671
                        if e.errno != errno.ENOENT:
1694
1672
                            raise
1792
1770
        parent_keys = [(file_id, self._file_revision(t, file_id)) for t in
1793
1771
                       self._iter_parent_trees()]
1794
1772
        vf.add_lines((file_id, tree_revision), parent_keys,
1795
 
                     self.get_file_lines(file_id))
 
1773
                     self.get_file(file_id).readlines())
1796
1774
        repo = self._get_repository()
1797
1775
        base_vf = repo.texts
1798
1776
        if base_vf not in vf.fallback_versionedfiles:
2460
2438
    if entry.kind == "directory":
2461
2439
        return True
2462
2440
    if entry.kind == "file":
2463
 
        f = file(target_path, 'rb')
2464
 
        try:
2465
 
            if tree.get_file_text(file_id) == f.read():
2466
 
                return True
2467
 
        finally:
2468
 
            f.close()
 
2441
        if tree.get_file(file_id).read() == file(target_path, 'rb').read():
 
2442
            return True
2469
2443
    elif entry.kind == "symlink":
2470
2444
        if tree.get_symlink_target(file_id) == os.readlink(target_path):
2471
2445
            return True
2930
2904
        """Rename a file from one path to another."""
2931
2905
        try:
2932
2906
            osutils.rename(from_, to)
2933
 
        except (IOError, OSError), e:
 
2907
        except OSError, e:
2934
2908
            if e.errno in (errno.EEXIST, errno.ENOTEMPTY):
2935
2909
                raise errors.FileExists(to, str(e))
2936
 
            # normal OSError doesn't include filenames so it's hard to see where
2937
 
            # the problem is, see https://bugs.launchpad.net/bzr/+bug/491763
2938
 
            raise errors.TransformRenameFailed(from_, to, str(e), e.errno)
 
2910
            raise
2939
2911
        self.past_renames.append((from_, to))
2940
2912
 
2941
2913
    def pre_delete(self, from_, to):
2951
2923
    def rollback(self):
2952
2924
        """Reverse all renames that have been performed"""
2953
2925
        for from_, to in reversed(self.past_renames):
2954
 
            try:
2955
 
                osutils.rename(to, from_)
2956
 
            except (OSError, IOError), e:
2957
 
                raise errors.TransformRenameFailed(to, from_, str(e), e.errno)                
 
2926
            osutils.rename(to, from_)
2958
2927
        # after rollback, don't reuse _FileMover
2959
2928
        past_renames = None
2960
2929
        pending_deletions = None