Speed up noop registry updates with GitHub #2974

Merged
merged 1 commit into from Aug 9, 2016

Conversation

Projects
None yet
4 participants
@alexcrichton
Member

alexcrichton commented Aug 8, 2016

This commit adds supports to registry index updates to use GitHub's HTTP API 1
which is purportedly 2 much faster than doing a git clone, and emprically that
appears to be the case.

This logic kicks in by looking at the URL of a registry's index, and if it looks
exactly like github.com/$user/$repo then we'll attempt to use GitHub's API,
otherwise we always fall back to a git update.

This behavior may slow down registry updates which actually need to download
information as an extra HTTP request is performed to figure out that we need to
perform a git fetch, but hopefully that won't actually be the case much of the
time!

Closes #2451

Speed up noop registry updates with GitHub
This commit adds supports to registry index updates to use GitHub's HTTP API [1]
which is purportedly [2] much faster than doing a git clone, and emprically that
appears to be the case.

This logic kicks in by looking at the URL of a registry's index, and if it looks
exactly like `github.com/$user/$repo` then we'll attempt to use GitHub's API,
otherwise we always fall back to a git update.

This behavior may *slow down* registry updates which actually need to download
information as an extra HTTP request is performed to figure out that we need to
perform a git fetch, but hopefully that won't actually be the case much of the
time!

[1]: https://developer.github.com/v3/repos/commits/#get-the-sha-1-of-a-commit-reference
[2]: https://developer.github.com/changes/2016-02-24-commit-reference-sha-api/
@rust-highfive

This comment has been minimized.

Show comment
Hide comment
@rust-highfive

rust-highfive Aug 8, 2016

@alexcrichton: no appropriate reviewer found, use r? to override

@alexcrichton: no appropriate reviewer found, use r? to override

@alexcrichton

This comment has been minimized.

Show comment
Hide comment
Member

alexcrichton commented Aug 8, 2016

r? @brson

@brson

This comment has been minimized.

Show comment
Hide comment
@brson

brson Aug 9, 2016

Contributor

@bors r+

Contributor

brson commented Aug 9, 2016

@bors r+

@bors

This comment has been minimized.

Show comment
Hide comment
@bors

bors Aug 9, 2016

Contributor

📌 Commit a9d108a has been approved by brson

Contributor

bors commented Aug 9, 2016

📌 Commit a9d108a has been approved by brson

@bors

This comment has been minimized.

Show comment
Hide comment
@bors

bors Aug 9, 2016

Contributor

⌛️ Testing commit a9d108a with merge e958281...

Contributor

bors commented Aug 9, 2016

⌛️ Testing commit a9d108a with merge e958281...

bors added a commit that referenced this pull request Aug 9, 2016

Auto merge of #2974 - alexcrichton:etag, r=brson
Speed up noop registry updates with GitHub

This commit adds supports to registry index updates to use GitHub's HTTP API [1]
which is purportedly [2] much faster than doing a git clone, and emprically that
appears to be the case.

This logic kicks in by looking at the URL of a registry's index, and if it looks
exactly like `github.com/$user/$repo` then we'll attempt to use GitHub's API,
otherwise we always fall back to a git update.

This behavior may *slow down* registry updates which actually need to download
information as an extra HTTP request is performed to figure out that we need to
perform a git fetch, but hopefully that won't actually be the case much of the
time!

[1]: https://developer.github.com/v3/repos/commits/#get-the-sha-1-of-a-commit-reference
[2]: https://developer.github.com/changes/2016-02-24-commit-reference-sha-api/

Closes #2451
@bors

This comment has been minimized.

Show comment
Hide comment
Contributor

bors commented Aug 9, 2016

@bors bors merged commit a9d108a into rust-lang:master Aug 9, 2016

3 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
homu Test successful
Details

@alexcrichton alexcrichton deleted the alexcrichton:etag branch Aug 9, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment