~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/pack_repo.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-05-18 13:02:52 UTC
  • mfrom: (5830.3.6 i18n-msgfmt)
  • Revision ID: pqm@pqm.ubuntu.com-20110518130252-ky96qcvzt6o0zg3f
(mbp) add build_mo command to setup.py (INADA Naoki)

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
from __future__ import absolute_import
18
 
 
19
17
import re
20
18
import sys
21
19
 
27
25
from bzrlib import (
28
26
    chk_map,
29
27
    cleanup,
30
 
    config,
31
28
    debug,
32
29
    graph,
33
30
    osutils,
57
54
from bzrlib.repository import (
58
55
    _LazyListJoin,
59
56
    MetaDirRepository,
60
 
    RepositoryFormatMetaDir,
 
57
    RepositoryFormat,
61
58
    RepositoryWriteLockResult,
62
59
    )
63
60
from bzrlib.vf_repository import (
317
314
        for index_type in index_types:
318
315
            old_name = self.index_name(index_type, self.name)
319
316
            new_name = '../indices/' + old_name
320
 
            self.upload_transport.move(old_name, new_name)
 
317
            self.upload_transport.rename(old_name, new_name)
321
318
            self._replace_index_with_readonly(index_type)
322
319
        new_name = '../packs/' + self.file_name()
323
 
        self.upload_transport.move(self.file_name(), new_name)
 
320
        self.upload_transport.rename(self.file_name(), new_name)
324
321
        self._state = 'finished'
325
322
 
326
323
    def _get_external_refs(self, index):
481
478
        # visible is smaller.  On the other hand none will be seen until
482
479
        # they're in the names list.
483
480
        self.index_sizes = [None, None, None, None]
484
 
        self._write_index('revision', self.revision_index, 'revision',
485
 
            suspend)
 
481
        self._write_index('revision', self.revision_index, 'revision', suspend)
486
482
        self._write_index('inventory', self.inventory_index, 'inventory',
487
483
            suspend)
488
484
        self._write_index('text', self.text_index, 'file texts', suspend)
492
488
            self.index_sizes.append(None)
493
489
            self._write_index('chk', self.chk_index,
494
490
                'content hash bytes', suspend)
495
 
        self.write_stream.close(
496
 
            want_fdatasync=self._pack_collection.config_stack.get('repository.fdatasync'))
 
491
        self.write_stream.close()
497
492
        # Note that this will clobber an existing pack with the same name,
498
493
        # without checking for hash collisions. While this is undesirable this
499
494
        # is something that can be rectified in a subsequent release. One way
508
503
        new_name = self.name + '.pack'
509
504
        if not suspend:
510
505
            new_name = '../packs/' + new_name
511
 
        self.upload_transport.move(self.random_name, new_name)
 
506
        self.upload_transport.rename(self.random_name, new_name)
512
507
        self._state = 'finished'
513
508
        if 'pack' in debug.debug_flags:
514
509
            # XXX: size might be interesting?
542
537
            transport = self.upload_transport
543
538
        else:
544
539
            transport = self.index_transport
545
 
        index_tempfile = index.finish()
546
 
        index_bytes = index_tempfile.read()
547
 
        write_stream = transport.open_write_stream(index_name,
548
 
            mode=self._file_mode)
549
 
        write_stream.write(index_bytes)
550
 
        write_stream.close(
551
 
            want_fdatasync=self._pack_collection.config_stack.get('repository.fdatasync'))
552
 
        self.index_sizes[self.index_offset(index_type)] = len(index_bytes)
 
540
        self.index_sizes[self.index_offset(index_type)] = transport.put_file(
 
541
            index_name, index.finish(), mode=self._file_mode)
553
542
        if 'pack' in debug.debug_flags:
554
543
            # XXX: size might be interesting?
555
544
            mutter('%s: create_pack: wrote %s index: %s%s t+%6.3fs',
833
822
                set(all_combined).difference([combined_idx]))
834
823
        # resumed packs
835
824
        self._resumed_packs = []
836
 
        self.config_stack = config.LocationStack(self.transport.base)
837
825
 
838
826
    def __repr__(self):
839
827
        return '%s(%r)' % (self.__class__.__name__, self.repo)
1223
1211
        """
1224
1212
        for pack in packs:
1225
1213
            try:
1226
 
                try:
1227
 
                    pack.pack_transport.move(pack.file_name(),
1228
 
                        '../obsolete_packs/' + pack.file_name())
1229
 
                except errors.NoSuchFile:
1230
 
                    # perhaps obsolete_packs was removed? Let's create it and
1231
 
                    # try again
1232
 
                    try:
1233
 
                        pack.pack_transport.mkdir('../obsolete_packs/')
1234
 
                    except errors.FileExists:
1235
 
                        pass
1236
 
                    pack.pack_transport.move(pack.file_name(),
1237
 
                        '../obsolete_packs/' + pack.file_name())
 
1214
                pack.pack_transport.rename(pack.file_name(),
 
1215
                    '../obsolete_packs/' + pack.file_name())
1238
1216
            except (errors.PathError, errors.TransportError), e:
1239
1217
                # TODO: Should these be warnings or mutters?
1240
1218
                mutter("couldn't rename obsolete pack, skipping it:\n%s"
1247
1225
                suffixes.append('.cix')
1248
1226
            for suffix in suffixes:
1249
1227
                try:
1250
 
                    self._index_transport.move(pack.name + suffix,
 
1228
                    self._index_transport.rename(pack.name + suffix,
1251
1229
                        '../obsolete_packs/' + pack.name + suffix)
1252
1230
                except (errors.PathError, errors.TransportError), e:
1253
1231
                    mutter("couldn't rename obsolete index, skipping it:\n%s"
1506
1484
        obsolete_pack_transport = self.transport.clone('obsolete_packs')
1507
1485
        if preserve is None:
1508
1486
            preserve = set()
1509
 
        try:
1510
 
            obsolete_pack_files = obsolete_pack_transport.list_dir('.')
1511
 
        except errors.NoSuchFile:
1512
 
            return found
1513
 
        for filename in obsolete_pack_files:
 
1487
        for filename in obsolete_pack_transport.list_dir('.'):
1514
1488
            name, ext = osutils.splitext(filename)
1515
1489
            if ext == '.pack':
1516
1490
                found.append(name)
1922
1896
                                    than normal. I.e. during 'upgrade'.
1923
1897
        """
1924
1898
        if not _found:
1925
 
            format = RepositoryFormatMetaDir.find_format(a_bzrdir)
 
1899
            format = RepositoryFormat.find_format(a_bzrdir)
1926
1900
        if _override_transport is not None:
1927
1901
            repo_transport = _override_transport
1928
1902
        else: