~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/remote.py

  • Committer: Vincent Ladeuil
  • Date: 2012-01-05 15:54:17 UTC
  • mfrom: (6428 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6468.
  • Revision ID: v.ladeuil+lp@free.fr-20120105155417-zvjqr0v78zp332e0
Merge trunk resolving conflicts and fixing more test failures related to
more option being migrated which in turn reduce some hpss_calls.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
    bencode,
24
24
    branch,
25
25
    bzrdir as _mod_bzrdir,
26
 
    config,
 
26
    config as _mod_config,
27
27
    controldir,
28
28
    debug,
29
29
    errors,
59
59
from bzrlib.repository import RepositoryWriteLockResult, _LazyListJoin
60
60
from bzrlib.serializer import format_registry as serializer_format_registry
61
61
from bzrlib.trace import mutter, note, warning, log_exception_quietly
 
62
from bzrlib.versionedfile import ChunkedContentFactory, FulltextContentFactory
62
63
 
63
64
 
64
65
_DEFAULT_SEARCH_DEPTH = 100
348
349
        _mod_bzrdir.BzrDirMetaFormat1._set_repository_format) #.im_func)
349
350
 
350
351
 
351
 
class RemoteControlStore(config.IniFileStore):
 
352
class RemoteControlStore(_mod_config.IniFileStore):
352
353
    """Control store which attempts to use HPSS calls to retrieve control store.
353
354
 
354
355
    Note that this is specific to bzr-based formats.
378
379
    def _ensure_real(self):
379
380
        self.bzrdir._ensure_real()
380
381
        if self._real_store is None:
381
 
            self._real_store = config.ControlStore(self.bzrdir)
 
382
            self._real_store = _mod_config.ControlStore(self.bzrdir)
382
383
 
383
384
    def external_url(self):
384
385
        return self.bzrdir.user_url
480
481
                warning('VFS BzrDir access triggered\n%s',
481
482
                    ''.join(traceback.format_stack()))
482
483
            self._real_bzrdir = _mod_bzrdir.BzrDir.open_from_transport(
483
 
                self.root_transport, _server_formats=False)
 
484
                self.root_transport, probers=[_mod_bzrdir.BzrProber])
484
485
            self._format._network_name = \
485
486
                self._real_bzrdir._format.network_name()
486
487
 
1843
1844
            delta, new_revision_id, parents, basis_inv=basis_inv,
1844
1845
            propagate_caches=propagate_caches)
1845
1846
 
1846
 
    def add_revision(self, rev_id, rev, inv=None, config=None):
1847
 
        self._ensure_real()
1848
 
        return self._real_repository.add_revision(
1849
 
            rev_id, rev, inv=inv, config=config)
 
1847
    def add_revision(self, revision_id, rev, inv=None):
 
1848
        _mod_revision.check_not_reserved_id(revision_id)
 
1849
        key = (revision_id,)
 
1850
        # check inventory present
 
1851
        if not self.inventories.get_parent_map([key]):
 
1852
            if inv is None:
 
1853
                raise errors.WeaveRevisionNotPresent(revision_id,
 
1854
                                                     self.inventories)
 
1855
            else:
 
1856
                # yes, this is not suitable for adding with ghosts.
 
1857
                rev.inventory_sha1 = self.add_inventory(revision_id, inv,
 
1858
                                                        rev.parent_ids)
 
1859
        else:
 
1860
            rev.inventory_sha1 = self.inventories.get_sha1s([key])[key]
 
1861
        self._add_revision(rev)
 
1862
 
 
1863
    def _add_revision(self, rev):
 
1864
        if self._real_repository is not None:
 
1865
            return self._real_repository._add_revision(rev)
 
1866
        text = self._serializer.write_revision_to_string(rev)
 
1867
        key = (rev.revision_id,)
 
1868
        parents = tuple((parent,) for parent in rev.parent_ids)
 
1869
        self._write_group_tokens, missing_keys = self._get_sink().insert_stream(
 
1870
            [('revisions', [FulltextContentFactory(key, parents, None, text)])],
 
1871
            self._format, self._write_group_tokens)
1850
1872
 
1851
1873
    @needs_read_lock
1852
1874
    def get_inventory(self, revision_id):
3178
3200
        return False
3179
3201
 
3180
3202
 
3181
 
class RemoteBranchStore(config.IniFileStore):
 
3203
class RemoteBranchStore(_mod_config.IniFileStore):
3182
3204
    """Branch store which attempts to use HPSS calls to retrieve branch store.
3183
3205
 
3184
3206
    Note that this is specific to bzr-based formats.
3222
3244
    def _ensure_real(self):
3223
3245
        self.branch._ensure_real()
3224
3246
        if self._real_store is None:
3225
 
            self._real_store = config.BranchStore(self.branch)
 
3247
            self._real_store = _mod_config.BranchStore(self.branch)
3226
3248
 
3227
3249
 
3228
3250
class RemoteBranch(branch.Branch, _RpcHelper, lock._RelockDebugMixin):
3942
3964
                value = section_obj.get(name, default)
3943
3965
        except errors.UnknownSmartMethod:
3944
3966
            value = self._vfs_get_option(name, section, default)
3945
 
        for hook in config.OldConfigHooks['get']:
 
3967
        for hook in _mod_config.OldConfigHooks['get']:
3946
3968
            hook(self, name, value)
3947
3969
        return value
3948
3970
 
3950
3972
        if len(response[0]) and response[0][0] != 'ok':
3951
3973
            raise errors.UnexpectedSmartServerResponse(response)
3952
3974
        lines = response[1].read_body_bytes().splitlines()
3953
 
        conf = config.ConfigObj(lines, encoding='utf-8')
3954
 
        for hook in config.OldConfigHooks['load']:
 
3975
        conf = _mod_config.ConfigObj(lines, encoding='utf-8')
 
3976
        for hook in _mod_config.OldConfigHooks['load']:
3955
3977
            hook(self)
3956
3978
        return conf
3957
3979