git's smart fetch-pack protocol