You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Git: 2.34.1 GitPython: 3.1.43 Python: 3.10.12
FYI, progress bar rendered with rich (13.7.1)
Issue
RemoteProgress update method is called with ill-formed parameters when use with remote.fetch and thus leading to broken progress bar. This is working well with clone and/or clone_from. Update is called only once per git operation (e.g. COUNTING, COMPRESSING) with BEGINandEND opcode flag set and all messages concatenated.
It seems that remote progress lines are not parsed correctly while fetching remote.
Correct behavior with clone
Cloning git repository mypackage (revision=branch1)... Counting ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% eta 0:00:00 Compressing ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% eta 0:00:00 Receiving ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% eta 0:00:00 6.45 MiB | 12.85 MiB/s Resolving ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% eta 0:00:00
Parsing should happen in real-time even though this looks like it's not able to separate the lines, or it sees all lines at once for some reason. Maybe it's related to synchronization also in the relation to how the program that uses GitPython is written, even though it seems to work with clone and clone_from.
So maybe it would be possible to find a difference between the fetch and clone, which to my knowledge use the same underlying engine.
Activity
Byron commentedon Oct 14, 2024
Thanks for reporting.
Parsing should happen in real-time even though this looks like it's not able to separate the lines, or it sees all lines at once for some reason. Maybe it's related to synchronization also in the relation to how the program that uses GitPython is written, even though it seems to work with
cloneandclone_from.So maybe it would be possible to find a difference between the
fetchandclone, which to my knowledge use the same underlying engine.fvalette-ledger commentedon Oct 14, 2024
With GitPython 3.1.40, it works well, progress bar is not broken on fetch sub command.
I'll try the two next patch level release.
fvalette-ledger commentedon Oct 14, 2024
This is broken from 3.1.41.
fvalette-ledger commentedon Oct 14, 2024
Here dumps of handle process output while fetching:
Output with working progress bar (v3.1.40):
fvalette-ledger commentedon Oct 14, 2024
underlying engine is the same, but input stream parsed is not.
fvalette-ledger commentedon Oct 14, 2024
Okay, seems that i found something interresting. I'll push a pull request (w/ working progress bar)
git,remote: use universal new lines for fetch/pull stderr capture
LoeschMaximilian commentedon May 27, 2026
As the PR is merged, this can be closed?
Byron commentedon May 27, 2026
Let's do it!