Skip to content

Commit 8a3d686

Browse files
committed
Add granular handling for Git clone progress
1 parent 3eb3a4a commit 8a3d686

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

mbed/mbed.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -451,9 +451,9 @@ def clone_progress(line, sep):
451451
m = re.match(r'(\w+).+?\s+(\d+)/(\d+)\s+.*?', line)
452452
if m:
453453
if m.group(1) == "manifests":
454-
show_progress('Downloading', (float(m.group(2)) / float(m.group(3))) * 20, 80)
454+
show_progress('Downloading', (float(m.group(2)) / float(m.group(3))) * 20)
455455
if m.group(1) == "files":
456-
show_progress('Downloading', (float(m.group(2)) / float(m.group(3))) * 100, 80)
456+
show_progress('Downloading', (float(m.group(2)) / float(m.group(3))) * 100)
457457

458458
def add(dest):
459459
info("Adding reference \"%s\"" % dest)
@@ -681,9 +681,16 @@ def clone(url, name=None, depth=None, protocol=None):
681681
hide_progress()
682682

683683
def clone_progress(line, sep):
684-
m = re.match(r'Receiving objects\:\s*(\d+)% \((\d+)/(\d+)\)', line)
684+
m = re.match(r'([\w :]+)\:\s*(\d+)% \((\d+)/(\d+)\)', line)
685685
if m:
686-
show_progress('Downloading', (float(m.group(2)) / float(m.group(3))) * 100, 80)
686+
if m.group(1) == "remote: Compressing objects" and int(m.group(4)) > 10:
687+
show_progress('Preparing', (float(m.group(3)) / float(m.group(4))) * 100)
688+
if m.group(1) == "Receiving objects":
689+
show_progress('Downloading', (float(m.group(3)) / float(m.group(4))) * 80)
690+
if m.group(1) == "Resolving deltas":
691+
show_progress('Downloading', (float(m.group(3)) / float(m.group(4))) * 10 + 80)
692+
if m.group(1) == "Checking out files":
693+
show_progress('Downloading', (float(m.group(3)) / float(m.group(4))) * 10 + 90)
687694

688695
def add(dest):
689696
info("Adding reference "+dest)

0 commit comments

Comments
 (0)