Skip to content

Commit 9543618

Browse files
committed
Implemented assertion based on #143
The assertion will trigger, which shows that we are still getting thigs slightly wrong. For now, we are better off without.
1 parent 5b60803 commit 9543618

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

git/remote.py

+10
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,8 @@ class Remote(LazyMixin, Iterable):
349349
__slots__ = ("repo", "name", "_config_reader")
350350
_id_attribute_ = "name"
351351

352+
_re_find_info = re.compile(r'\b(\S+)\s+->\s')
353+
352354
def __init__(self, repo, name):
353355
"""Initialize a remote instance
354356
@@ -513,6 +515,9 @@ def _get_fetch_info_from_stderr(self, proc, progress):
513515
# this also waits for the command to finish
514516
# Skip some progress lines that don't provide relevant information
515517
fetch_info_lines = list()
518+
# NOTE: We only keep this information for an assertion, which might as well go away.
519+
# Implementation based on https://github.com/gitpython-developers/GitPython/pull/143
520+
seen_refs = set()
516521
for line in digest_process_messages(proc.stderr, progress):
517522
if line.startswith('From') or line.startswith('remote: Total') or line.startswith('POST') \
518523
or line.startswith(' ='):
@@ -523,6 +528,9 @@ def _get_fetch_info_from_stderr(self, proc, progress):
523528
elif line.startswith('fatal:'):
524529
raise GitCommandError(("Error when fetching: %s" % line,), 2)
525530
# END handle special messages
531+
ref = self._re_find_info.search(line)
532+
if ref:
533+
seen_refs.add(ref.group(1))
526534
fetch_info_lines.append(line)
527535
# END for each line
528536

@@ -535,6 +543,8 @@ def _get_fetch_info_from_stderr(self, proc, progress):
535543
# I simply couldn't stand it anymore, so here is the quick and dirty fix ... .
536544
# This project needs a lot of work !
537545
# assert len(fetch_info_lines) == len(fetch_head_info), "len(%s) != len(%s)" % (fetch_head_info, fetch_info_lines)
546+
assert len(seen_refs) == len(fetch_head_info), "len(%s) != len(%s)" % (fetch_head_info, seen_refs)
547+
538548

539549
output.extend(FetchInfo._from_line(self.repo, err_line, fetch_line)
540550
for err_line, fetch_line in zip(fetch_info_lines, fetch_head_info))

0 commit comments

Comments
 (0)