/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/smart/message.py

  • Committer: John Arbash Meinel
  • Date: 2009-06-01 18:13:46 UTC
  • mto: (4360.4.11 1.15-pack-source)
  • mto: This revision was merged to the branch mainline in revision 4396.
  • Revision ID: john@arbash-meinel.com-20090601181346-2fxsd3o977j5bj5b
Add tests that ensure we can fetch branches with ghosts in their ancestry.

Also added similar tests when stacking is involved.
Then fixed both the StreamSource and GroupCHKStreamSource to handle these cases.
Andrew's fix didn't work in the case of Stacked, as it only worked if the
initial fetch created a fully complete target. Not if there was a ghost
involved with the transmitted revisions, and stacking was also involved.

Basic fix is just to allow absent records during 'get_stream_for_missing_keys',
the StreamSink is then responsible for ensuring no content is actually missing.

Show diffs side-by-side

added added

removed removed

Lines of Context:
134
134
 
135
135
    def _args_received(self, args):
136
136
        self.expecting = 'body'
137
 
        self.request_handler.args_received(args)
 
137
        self.request_handler.dispatch_command(args[0], args[1:])
138
138
        if self.request_handler.finished_reading:
139
139
            self._response_sent = True
140
140
            self.responder.send_response(self.request_handler.response)
283
283
                    self._protocol_decoder._get_in_buffer()[:10],
284
284
                    self._protocol_decoder.state_accept.__name__)
285
285
            raise errors.ConnectionReset(
286
 
                "Unexpected end of message. "
287
 
                "Please check connectivity and permissions, and report a bug "
288
 
                "if problems persist.")
 
286
                "please check connectivity and permissions")
289
287
        self._protocol_decoder.accept_bytes(bytes)
290
288
 
291
289
    def protocol_error(self, exception):
330
328
        while not self.finished_reading:
331
329
            while self._bytes_parts:
332
330
                bytes_part = self._bytes_parts.popleft()
333
 
                if 'hpssdetail' in debug.debug_flags:
 
331
                if 'hpss' in debug.debug_flags:
334
332
                    mutter('              %d byte part read', len(bytes_part))
335
333
                yield bytes_part
336
334
            self._read_more()