/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: Martin Pool
  • Date: 2010-04-30 09:05:29 UTC
  • mto: This revision was merged to the branch mainline in revision 5228.
  • Revision ID: mbp@sourcefrog.net-20100430090529-iow1z00kyzczjvjp
Update other cases where transform detects failure to rename

Show diffs side-by-side

added added

removed removed

Lines of Context:
1635
1635
                      or trans_id in self._new_parent):
1636
1636
                    try:
1637
1637
                        mover.rename(full_path, self._limbo_name(trans_id))
1638
 
                    except OSError, e:
 
1638
                    except errors.TransformRenameFailed, e:
1639
1639
                        if e.errno != errno.ENOENT:
1640
1640
                            raise
1641
1641
                    else:
1666
1666
                if trans_id in self._needs_rename:
1667
1667
                    try:
1668
1668
                        mover.rename(self._limbo_name(trans_id), full_path)
1669
 
                    except OSError, e:
 
1669
                    except errors.TransformRenameFailed, e:
1670
1670
                        # We may be renaming a dangling inventory id
1671
1671
                        if e.errno != errno.ENOENT:
1672
1672
                            raise
2901
2901
        """Rename a file from one path to another."""
2902
2902
        try:
2903
2903
            osutils.rename(from_, to)
2904
 
        except OSError, e:
 
2904
        except (IOError, OSError), e:
2905
2905
            if e.errno in (errno.EEXIST, errno.ENOTEMPTY):
2906
2906
                raise errors.FileExists(to, str(e))
2907
2907
            # normal OSError doesn't include filenames so it's hard to see where
2908
2908
            # the problem is, see https://bugs.launchpad.net/bzr/+bug/491763
2909
 
            raise errors.TransformRenameFailed(from_, to, str(e))
2910
 
        except IOError, e:
2911
 
            raise errors.TransformRenameFailed(from_, to, str(e))
 
2909
            raise errors.TransformRenameFailed(from_, to, str(e), e.errno)
2912
2910
        self.past_renames.append((from_, to))
2913
2911
 
2914
2912
    def pre_delete(self, from_, to):
2924
2922
    def rollback(self):
2925
2923
        """Reverse all renames that have been performed"""
2926
2924
        for from_, to in reversed(self.past_renames):
2927
 
            osutils.rename(to, from_)
 
2925
            try:
 
2926
                osutils.rename(to, from_)
 
2927
            except (OSError, IOError), e:
 
2928
                raise errors.TransformRenameFailed(from_, to, str(e), e.errno)                
2928
2929
        # after rollback, don't reuse _FileMover
2929
2930
        past_renames = None
2930
2931
        pending_deletions = None