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

  • Committer: Jelmer Vernooij
  • Date: 2018-03-31 19:47:40 UTC
  • mto: (0.200.1910 work)
  • mto: This revision was merged to the branch mainline in revision 6960.
  • Revision ID: jelmer@jelmer.uk-20180331194740-q1lhux2ao2etsblk
Use same logic for interpreting progress reports everywhere.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
from __future__ import absolute_import
20
20
 
 
21
import re
 
22
 
21
23
from ... import (
22
24
    config,
23
25
    debug,
287
289
        raise UninitializableFormat(self)
288
290
 
289
291
 
290
 
def default_report_progress(text):
 
292
_GIT_PROGRESS_PARTIAL_RE = re.compile(r"(.*?): +(\d+)% \((\d+)/(\d+)\)")
 
293
_GIT_PROGRESS_TOTAL_RE = re.compile(r"(.*?): (\d+)")
 
294
def default_report_progress(pb, text):
 
295
    text = text.rstrip("\r\n")
291
296
    if text.startswith('error: '):
292
297
        trace.show_error('git: %s', text[len('error: '):])
293
298
    else:
294
 
        trace.mutter("git: %s" % text)
 
299
        trace.mutter("git: %s", text)
 
300
        g = _GIT_PROGRESS_PARTIAL_RE.match(text)
 
301
        if g is not None:
 
302
            (text, pct, current, total) = g.groups()
 
303
            pb.update(text, int(current), int(total))
 
304
        else:
 
305
            g = _GIT_PROGRESS_TOTAL_RE.match(text)
 
306
            if g is not None:
 
307
                (text, total) = g.groups()
 
308
                pb.update(text, None, int(total))
 
309
            else:
 
310
                pb.update(text, None, None)
295
311
 
296
312
 
297
313
class RemoteGitDir(GitDir):
312
328
 
313
329
    def fetch_pack(self, determine_wants, graph_walker, pack_data, progress=None):
314
330
        if progress is None:
315
 
            progress = default_report_progress
 
331
            progress = lambda text: default_report_progress(pb, text)
 
332
            pb = ui.ui_factory.nested_progress_bar()
 
333
        else:
 
334
            pb = None
316
335
        try:
317
336
            result = self._client.fetch_pack(self._client_path, determine_wants,
318
337
                graph_walker, pack_data, progress)
322
341
            return result
323
342
        except GitProtocolError, e:
324
343
            raise parse_git_error(self.transport.external_url(), e)
 
344
        finally:
 
345
            if pb is not None:
 
346
                pb.finished()
325
347
 
326
348
    def send_pack(self, get_changed_refs, generate_pack_data, progress=None):
327
349
        if progress is None:
328
 
            progress = default_report_progress
329
 
 
 
350
            progress = lambda text: default_report_progress(pb, text)
 
351
            pb = ui.ui_factory.nested_progress_bar()
 
352
        else:
 
353
            pb = None
330
354
        try:
331
355
            return self._client.send_pack(self._client_path, get_changed_refs,
332
356
                generate_pack_data, progress)
333
357
        except GitProtocolError, e:
334
358
            raise parse_git_error(self.transport.external_url(), e)
 
359
        finally:
 
360
            if pb is not None:
 
361
                pb.finished()
335
362
 
336
363
    def create_branch(self, name=None, repository=None,
337
364
                      append_revisions_only=None, ref=None):