/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: 2008-07-28 06:08:42 UTC
  • mfrom: (3581 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3584.
  • Revision ID: robertc@robertcollins.net-20080728060842-uayjy217i066dvct
MergeĀ .dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
354
354
        try:
355
355
            mode = os.stat(self._tree.abspath(old_path)).st_mode
356
356
        except OSError, e:
357
 
            if e.errno == errno.ENOENT:
 
357
            if e.errno in (errno.ENOENT, errno.ENOTDIR):
 
358
                # Either old_path doesn't exist, or the parent of the
 
359
                # target is not a directory (but will be one eventually)
 
360
                # Either way, we know it doesn't exist *right now*
 
361
                # See also bug #248448
358
362
                return
359
363
            else:
360
364
                raise
1406
1410
        self._transform = transform
1407
1411
        self._final_paths = FinalPaths(transform)
1408
1412
        self.__by_parent = None
 
1413
        self._parent_ids = []
1409
1414
 
1410
1415
    def _changes(self, file_id):
1411
1416
        for changes in self._transform.iter_changes():
1419
1424
        # InterTree.iter_changes.
1420
1425
        return (changes is not None and changes[2])
1421
1426
 
 
1427
    def _get_repository(self):
 
1428
        repo = getattr(self._transform._tree, '_repository', None)
 
1429
        if repo is None:
 
1430
            repo = self._transform._tree.branch.repository
 
1431
        return repo
 
1432
 
 
1433
    def _iter_parent_trees(self):
 
1434
        for revision_id in self.get_parent_ids():
 
1435
            try:
 
1436
                yield self.revision_tree(revision_id)
 
1437
            except errors.NoSuchRevisionInTree:
 
1438
                yield self._get_repository().revision_tree(revision_id)
 
1439
 
1422
1440
    def _get_file_revision(self, file_id, vf, tree_revision):
1423
 
        return self._transform._tree._get_file_revision(file_id, vf,
1424
 
                                                        tree_revision)
 
1441
        parent_keys = [(file_id, self._file_revision(t, file_id)) for t in
 
1442
                       self._iter_parent_trees()]
 
1443
        vf.add_lines((file_id, tree_revision), parent_keys,
 
1444
                     self.get_file(file_id).readlines())
 
1445
        repo = self._get_repository()
 
1446
        base_vf = repo.texts
 
1447
        if base_vf not in vf.fallback_versionedfiles:
 
1448
            vf.fallback_versionedfiles.append(base_vf)
 
1449
        return tree_revision
1425
1450
 
1426
1451
    def _stat_limbo_file(self, file_id):
1427
1452
        trans_id = self._transform.trans_id_file_id(file_id)
1678
1703
        return self._transform._tree.walkdirs(prefix)
1679
1704
 
1680
1705
    def get_parent_ids(self):
1681
 
        return self._transform._tree.get_parent_ids()
 
1706
        return self._parent_ids
 
1707
 
 
1708
    def set_parent_ids(self, parent_ids):
 
1709
        self._parent_ids = parent_ids
1682
1710
 
1683
1711
    def get_revision_tree(self, revision_id):
1684
1712
        return self._transform._tree.get_revision_tree(revision_id)