/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/remote.py

  • Committer: Martin Pool
  • Date: 2008-09-05 11:05:34 UTC
  • mto: (3697.2.6 261315-into-1.7)
  • mto: This revision was merged to the branch mainline in revision 3710.
  • Revision ID: mbp@sourcefrog.net-20080905110534-x17o0plqu70umd61
Fix some problems in access to stacked repositories over hpss (#261315)

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
    repository,
30
30
    revision,
31
31
    symbol_versioning,
 
32
    urlutils,
32
33
)
33
34
from bzrlib.branch import BranchReferenceFormat
34
35
from bzrlib.bzrdir import BzrDir, RemoteBzrDirFormat
432
433
            'Repository.has_revision', path, revision_id)
433
434
        if response[0] not in ('yes', 'no'):
434
435
            raise errors.UnexpectedSmartServerResponse(response)
435
 
        return response[0] == 'yes'
 
436
        if response[0] == 'yes':
 
437
            return True
 
438
        for fallback_repo in self._fallback_repositories:
 
439
            if fallback_repo.has_revision(revision_id):
 
440
                return True
 
441
        return False
436
442
 
437
443
    def has_revisions(self, revision_ids):
438
444
        """See Repository.has_revisions()."""
 
445
        # FIXME: This does many roundtrips, particularly when there are
 
446
        # fallback repositories.  -- mbp 20080905
439
447
        result = set()
440
448
        for revision_id in revision_ids:
441
449
            if self.has_revision(revision_id):
1286
1294
        # done at a higher level.
1287
1295
        try:
1288
1296
            fallback_url = self.get_stacked_on_url()
 
1297
            # it's relative to this branch...
 
1298
            fallback_url = urlutils.join(self.base, fallback_url)
1289
1299
            fallback_repo = BzrDir.open(fallback_url,
1290
1300
                [self.bzrdir.root_transport,
1291
 
                 self._real_branch._transport])
 
1301
                 self._real_branch._transport]).open_repository()
1292
1302
            self.repository.add_fallback_repository(fallback_repo)
1293
1303
        except (errors.NotStacked, errors.UnstackableBranchFormat,
1294
1304
            errors.UnstackableRepositoryFormat), e: