~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/pack_repo.py

Update to bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
600
600
        return NewPack(self._pack_collection._upload_transport,
601
601
            self._pack_collection._index_transport,
602
602
            self._pack_collection._pack_transport, upload_suffix=self.suffix,
603
 
            file_mode=self._pack_collection.repo.control_files._file_mode)
 
603
            file_mode=self._pack_collection.repo.bzrdir._get_file_mode())
604
604
 
605
605
    def _copy_revision_texts(self):
606
606
        """Copy revision data to the new pack."""
1561
1561
            for key, value in disk_nodes:
1562
1562
                builder.add_node(key, value)
1563
1563
            self.transport.put_file('pack-names', builder.finish(),
1564
 
                mode=self.repo.control_files._file_mode)
 
1564
                mode=self.repo.bzrdir._get_file_mode())
1565
1565
            # move the baseline forward
1566
1566
            self._packs_at_load = disk_nodes
1567
 
            # now clear out the obsolete packs directory
1568
1567
            if clear_obsolete_packs:
1569
 
                self.transport.clone('obsolete_packs').delete_multi(
1570
 
                    self.transport.list_dir('obsolete_packs'))
 
1568
                self._clear_obsolete_packs()
1571
1569
        finally:
1572
1570
            self._unlock_names()
1573
1571
        # synchronise the memory packs list with what we just wrote:
1599
1597
                self._names[name] = sizes
1600
1598
                self.get_pack_by_name(name)
1601
1599
 
 
1600
    def _clear_obsolete_packs(self):
 
1601
        """Delete everything from the obsolete-packs directory.
 
1602
        """
 
1603
        obsolete_pack_transport = self.transport.clone('obsolete_packs')
 
1604
        for filename in obsolete_pack_transport.list_dir('.'):
 
1605
            try:
 
1606
                obsolete_pack_transport.delete(filename)
 
1607
            except (errors.PathError, errors.TransportError), e:
 
1608
                warning("couldn't delete obsolete pack, skipping it:\n%s" % (e,))
 
1609
 
1602
1610
    def _start_write_group(self):
1603
1611
        # Do not permit preparation for writing if we're not in a 'write lock'.
1604
1612
        if not self.repo.is_write_locked():
1605
1613
            raise errors.NotWriteLocked(self)
1606
1614
        self._new_pack = NewPack(self._upload_transport, self._index_transport,
1607
1615
            self._pack_transport, upload_suffix='.pack',
1608
 
            file_mode=self.repo.control_files._file_mode)
 
1616
            file_mode=self.repo.bzrdir._get_file_mode())
1609
1617
        # allow writing: queue writes to a new index
1610
1618
        self.revision_index.add_writable_index(self._new_pack.revision_index,
1611
1619
            self._new_pack)
1648
1656
 
1649
1657
 
1650
1658
class KnitPackRepository(KnitRepository):
1651
 
    """Experimental graph-knit using repository."""
 
1659
    """Repository with knit objects stored inside pack containers."""
1652
1660
 
1653
1661
    def __init__(self, _format, a_bzrdir, control_files, _commit_builder_class,
1654
1662
        _serializer):
1655
 
        index_transport = control_files._transport.clone('indices')
1656
 
        self._pack_collection = RepositoryPackCollection(self, control_files._transport,
1657
 
            index_transport,
1658
 
            control_files._transport.clone('upload'),
1659
 
            control_files._transport.clone('packs'))
1660
1663
        KnitRepository.__init__(self, _format, a_bzrdir, control_files,
1661
1664
            _commit_builder_class, _serializer)
 
1665
        index_transport = self._transport.clone('indices')
 
1666
        self._pack_collection = RepositoryPackCollection(self, self._transport,
 
1667
            index_transport,
 
1668
            self._transport.clone('upload'),
 
1669
            self._transport.clone('packs'))
1662
1670
        self.inventories = KnitVersionedFiles(
1663
1671
            _KnitGraphIndex(self._pack_collection.inventory_index.combined_index,
1664
1672
                add_callback=self._pack_collection.inventory_index.add_callback,
1753
1761
        self._pack_collection.ensure_loaded()
1754
1762
        index = self._pack_collection.revision_index.combined_index
1755
1763
        keys = set(keys)
 
1764
        if None in keys:
 
1765
            raise ValueError('get_parent_map(None) is not valid')
1756
1766
        if _mod_revision.NULL_REVISION in keys:
1757
1767
            keys.discard(_mod_revision.NULL_REVISION)
1758
1768
            found_parents = {_mod_revision.NULL_REVISION:()}