Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork939
Closed
Milestone
Description
I'm trying to access the progress of time consuming Git operations using GitPython. I tried the sample solution taken from the official documentation, and also tried passing in a method following the exact signature of the update method below. Everytime I callfetch()
,push()
,pull()
with the parameterprogress=<anything>
, the programm is stuck and theupdate
method does not get called. If I call those operations without setting theprogress
parameter, it works flawlessly.
$ git --version
is 2.21.0- Calling
sys.stdout.flush()
afterprint()
does not help either - I use
assert
to assure my repo objects are available and in the expected state ProgressPrinter()
yields notNone
- I tried calling the functions from the main thread and multithreaded
- I took a look at theimplementation (line 350) of
RemoteProgress
and also theimplementation (line 815) ofpush()
and do not see a reason, why it would not continue execution - I found out, that when I assign my
ProgressPrinter
instance and pass the assigned variable, the programm is not stuck anymore. Yet theupdate()
method does not get called and no progress is printed:
# Not stuck anymore, yet no progresspp=ProgressPrinter()fetch_info=origin.fetch(progress=pp)
Core of my implementation:
fromgitimportRemoteProgressclassProgressPrinter(RemoteProgress):defupdate(self,op_code,cur_count,max_count=None,message=''):print("Is this even called?")
And later on:
origin=repo.remotes.originassertorigin.exists()fetch_info=origin.fetch(progress=ProgressPrinter())
Any recommendations on how to investigate this problem furthermore? I've been debugging this for several days now and feel like I am missing something.
Metadata
Metadata
Assignees
Labels
No labels