mxcl/homebrew — pull request #11976 by jacknagel (2012-04-30 23:17:03+00:00)
Title: GitDownloadStrategy optimization

The current series of fetch invocations in GitDownloadStrategy has the unfortunate behavior of fetching full history even in shallow clones that only need the history between the clone point and the remote HEAD. It should be possible to determine if it is actually necessary to fetch the full history, including all tags, and if it is not to avoid this overhead.

This fixes #11958, and using `:revision` (previously `:sha`) should always clone with full depth; tags and branches are shallow cloned when possible.

I'd like to make `host_supports_depth?` smart enough to query the remote and determine if shallow clones are supported; right now we can only assume shallow clones are possible when using the git protocol or GitHub HTTP/S.

I tested 15-20 git checkouts, but please test any problematic formulae that you know of.