/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

(mbp) (mbp) better message when rename fails inside TreeTransform (Martin
 Pool)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1657
1657
                      or trans_id in self._new_parent):
1658
1658
                    try:
1659
1659
                        mover.rename(full_path, self._limbo_name(trans_id))
1660
 
                    except OSError, e:
 
1660
                    except errors.TransformRenameFailed, e:
1661
1661
                        if e.errno != errno.ENOENT:
1662
1662
                            raise
1663
1663
                    else:
1688
1688
                if trans_id in self._needs_rename:
1689
1689
                    try:
1690
1690
                        mover.rename(self._limbo_name(trans_id), full_path)
1691
 
                    except OSError, e:
 
1691
                    except errors.TransformRenameFailed, e:
1692
1692
                        # We may be renaming a dangling inventory id
1693
1693
                        if e.errno != errno.ENOENT:
1694
1694
                            raise
2926
2926
        """Rename a file from one path to another."""
2927
2927
        try:
2928
2928
            osutils.rename(from_, to)
2929
 
        except OSError, e:
 
2929
        except (IOError, OSError), e:
2930
2930
            if e.errno in (errno.EEXIST, errno.ENOTEMPTY):
2931
2931
                raise errors.FileExists(to, str(e))
2932
 
            raise
 
2932
            # normal OSError doesn't include filenames so it's hard to see where
 
2933
            # the problem is, see https://bugs.launchpad.net/bzr/+bug/491763
 
2934
            raise errors.TransformRenameFailed(from_, to, str(e), e.errno)
2933
2935
        self.past_renames.append((from_, to))
2934
2936
 
2935
2937
    def pre_delete(self, from_, to):
2945
2947
    def rollback(self):
2946
2948
        """Reverse all renames that have been performed"""
2947
2949
        for from_, to in reversed(self.past_renames):
2948
 
            osutils.rename(to, from_)
 
2950
            try:
 
2951
                osutils.rename(to, from_)
 
2952
            except (OSError, IOError), e:
 
2953
                raise errors.TransformRenameFailed(to, from_, str(e), e.errno)                
2949
2954
        # after rollback, don't reuse _FileMover
2950
2955
        past_renames = None
2951
2956
        pending_deletions = None