In production, doing an incremental load of some large git repositories fails with an HTTP timeout in git-upload-pack.
This problem is two-fold:
- the git protocol expects an interactive walk of the history to find common ancestors between client and server
- dulwich's implementation of this interactive walk is not bidirectional, and I think we end up walking the full history of all branches *while* we're issuing the GET request.
This is especially noticeable on repositories with lots of branches such as https://github.com/mozilla/gecko-dev/
We can fix this by truncating the depth we use to walk the repository history before fetching the repo