title: Reading progress of Git operation using GitPython stuck
body: <p>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 call <code>fetch()</code>, <code>push()</code>, <code>pull()</code> <strong>with</strong> the parameter <code>progress=&lt;anything&gt;</code>, the programm is stuck and the <code>update</code> method does not get called. If I call those operations without setting the <code>progress</code> parameter, it works flawlessly.</p>
  
  <ul>
  <li>I use <code>asserts</code> to assure my repo objects are available and in the expected state</li>
  <li><code>ProgressPrinter()</code> yields not <code>None</code></li>
  <li>I tried calling the functions from the main thread and multithreaded</li>
  <li><p>I took a look at the <a href="https://github.com/gitpython-developers/GitPython/blob/52ee33ac9b234c7501d97b4c2bf2e2035c5ec1fa/git/util.py#L350" rel="nofollow noreferrer">implementation (line 350)</a> of <code>RemoteProgress</code> and also the <a href="https://github.com/gitpython-developers/GitPython/blob/52ee33ac9b234c7501d97b4c2bf2e2035c5ec1fa/git/remote.py#L815" rel="nofollow noreferrer">implementation (line 815)</a> of <code>push()</code> and do not see a reason, why it would not continue execution</p></li>
  <li><p>I found out, that when I assign my <code>ProgressPrinter</code> instance and pass the assigned variable, the programm is not stuck anymore. Yet the <code>update()</code> method does not get called and no progress is printed</p></li>
  </ul>
  
  <pre class="lang-py prettyprint-override"><code># Not stuck anymore, yet no progress
  pp = ProgressPrinter()
  fetch_info = origin.fetch(progress=pp)
  </code></pre>
  
  <p>Core of my implementation:</p>
  
  <pre class="lang-py prettyprint-override"><code>from git import RemoteProgress
  
  class ProgressPrinter(RemoteProgress):
      def update(self,
                 op_code,
                 cur_count,
                 max_count=None,
                 message=''):
          print("Is this even called?")
  </code></pre>
  
  <p>And later on:</p>
  
  <pre class="lang-py prettyprint-override"><code>origin = repo.remotes.origin
  assert origin.exists()
  fetch_info = origin.fetch(progress=ProgressPrinter())
  
  </code></pre>
  
  <p>Any recommendations on how to investigate this problem furthermore? I've been debugging this for one day now and feel like I am missing something. </p>