Agreed, that makes sense. However, my comment was about how you initialize ```@max_retries```.  I was thinking on using a constant like this:

```ruby
class GitProxy

  DEFAULT_MAX_RETRIES = 3

  def initialize(path, uri, ref, revision =nil, &allow)
     ...
    @max_retries = DEFAULT_MAX_RETRIES
     ...
  end
end
```

It's a simple change that helps the code readability.
For more about magic numbers: http://stackoverflow.com/questions/47882/what-is-a-magic-number-and-why-is-it-bad