~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/remote.py

  • Committer: Johan Walles
  • Date: 2009-05-06 05:36:28 UTC
  • mfrom: (4332 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4343.
  • Revision ID: johan.walles@gmail.com-20090506053628-tbf1wz4a0m9t684g
MergeĀ fromĀ upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
670
670
        self._ensure_real()
671
671
        return self._real_repository.suspend_write_group()
672
672
 
673
 
    def get_missing_parent_inventories(self, check_for_missing_texts=True):
 
673
    def get_missing_parent_inventories(self):
674
674
        self._ensure_real()
675
 
        return self._real_repository.get_missing_parent_inventories(
676
 
            check_for_missing_texts=check_for_missing_texts)
 
675
        return self._real_repository.get_missing_parent_inventories()
677
676
 
678
677
    def _ensure_real(self):
679
678
        """Ensure that there is a _real_repository set.
689
688
        invocation. If in doubt chat to the bzr network team.
690
689
        """
691
690
        if self._real_repository is None:
692
 
            if 'hpss' in debug.debug_flags:
693
 
                import traceback
694
 
                warning('VFS Repository access triggered\n%s',
695
 
                    ''.join(traceback.format_stack()))
696
691
            self._unstacked_provider.missing_keys.clear()
697
692
            self.bzrdir._ensure_real()
698
693
            self._set_real_repository(
861
856
            self._unstacked_provider.enable_cache(cache_misses=True)
862
857
            if self._real_repository is not None:
863
858
                self._real_repository.lock_read()
864
 
            for repo in self._fallback_repositories:
865
 
                repo.lock_read()
866
859
        else:
867
860
            self._lock_count += 1
 
861
        for repo in self._fallback_repositories:
 
862
            repo.lock_read()
868
863
 
869
864
    def _remote_lock_write(self, token):
870
865
        path = self.bzrdir._path_for_remote_call(self._client)
902
897
            self._lock_count = 1
903
898
            cache_misses = self._real_repository is None
904
899
            self._unstacked_provider.enable_cache(cache_misses=cache_misses)
905
 
            for repo in self._fallback_repositories:
906
 
                # Writes don't affect fallback repos
907
 
                repo.lock_read()
908
900
        elif self._lock_mode == 'r':
909
901
            raise errors.ReadOnlyError(self)
910
902
        else:
911
903
            self._lock_count += 1
 
904
        for repo in self._fallback_repositories:
 
905
            # Writes don't affect fallback repos
 
906
            repo.lock_read()
912
907
        return self._lock_token or None
913
908
 
914
909
    def leave_lock_in_place(self):
1016
1011
                self._lock_token = None
1017
1012
                if not self._leave_lock:
1018
1013
                    self._unlock(old_token)
1019
 
        # Fallbacks are always 'lock_read()' so we don't pay attention to
1020
 
        # self._leave_lock
1021
 
        for repo in self._fallback_repositories:
1022
 
            repo.unlock()
1023
1014
 
1024
1015
    def break_lock(self):
1025
1016
        # should hand off to the network
1089
1080
        # We need to accumulate additional repositories here, to pass them in
1090
1081
        # on various RPC's.
1091
1082
        #
1092
 
        if self.is_locked():
1093
 
            # We will call fallback.unlock() when we transition to the unlocked
1094
 
            # state, so always add a lock here. If a caller passes us a locked
1095
 
            # repository, they are responsible for unlocking it later.
1096
 
            repository.lock_read()
1097
1083
        self._fallback_repositories.append(repository)
1098
1084
        # If self._real_repository was parameterised already (e.g. because a
1099
1085
        # _real_branch had its get_stacked_on_url method called), then the
1981
1967
        except (errors.NotStacked, errors.UnstackableBranchFormat,
1982
1968
            errors.UnstackableRepositoryFormat), e:
1983
1969
            return
1984
 
        self._activate_fallback_location(fallback_url)
 
1970
        self._activate_fallback_location(fallback_url, None)
1985
1971
 
1986
1972
    def _get_config(self):
1987
1973
        return RemoteBranchConfig(self)