fix sample code to do with color-rs. Renamed HSV to Hsv and RGB to Rgb so that it compiles and works
Clarify why bins have Cargo.lock but libs don't

Closes #525
auto merge of #536 : superlogical/cargo/master, r=alexcrichton

So that it compiles and works
auto merge of #534 : alexcrichton/cargo/issue-525, r=brson

Closes #525 

r? @wycats
Add a NUM_JOBS env var to builds

Closes #539
Fix some minor typos
auto merge of #543 : alexcrichton/cargo/doc-fixes, r=alexcrichton
Switch the location of the docopt repo
auto merge of #546 : alexcrichton/cargo/docopt, r=huonw
Use libgit2 for `git ls-files`

One forgotten spot to modify when migrating from the CLI to libgit2
Don't recompile git deps so frequently

The previous logic for recompiling any dependency was almost entirely based on
the mtimes of the relevant input files. This isn't quite what's desired for git
and registry dependencies because the mtime could be fluctuating while the files
aren't changing. For example:

1. Project A checks out git repo C at revision C1
2. Project A builds, records mtimes of C
3. Project B checks out git repo C at revision C2
4. Project B builds, records new mtimes of C
5. Project A is rebuilt, rebuilding C b/c mtimes are different

In step 5 here C should not be rebuilt because the revision didn't actually
change.

This commit alters git/registry dependencies to completely bypass the --dep-info
emitted and only rely on the git/registry source to inform what the fingerprint
is. This is the revision/version, respectively, and should be all that's
necessary to track changes to the repo and trigger a rebuild.
Don't blow away checked out git repos

This primarily blows away all *submodules* as well, which sometimes can be quite
large and take some time to update. Instead, re-use an existing checkout, just
reset it to the right revision if possible.

Also, move the submodule update step to occur unconditionally to account for
corrupt submodule checkouts or interrupted downloads. This update step should be
much faster than `git submodule update` because we're using libgit2, so yay!
auto merge of #542 : alexcrichton/cargo/issue-539, r=brson

Closes #539
auto merge of #547 : alexcrichton/cargo/git2-for-package, r=brson

One forgotten spot to modify when migrating from the CLI to libgit2
auto merge of #548 : alexcrichton/cargo/frobbing-git-deps, r=brson

The previous logic for recompiling any dependency was almost entirely based on
the mtimes of the relevant input files. This isn't quite what's desired for git
and registry dependencies because the mtime could be fluctuating while the files
aren't changing. For example:

1. Project A checks out git repo C at revision C1
2. Project A builds, records mtimes of C
3. Project B checks out git repo C at revision C2
4. Project B builds, records new mtimes of C
5. Project A is rebuilt, rebuilding C b/c mtimes are different

In step 5 here C should not be rebuilt because the revision didn't actually
change.

This commit alters git/registry dependencies to completely bypass the --dep-info
emitted and only rely on the git/registry source to inform what the fingerprint
is. This is the revision/version, respectively, and should be all that's
necessary to track changes to the repo and trigger a rebuild.
auto merge of #549 : alexcrichton/cargo/git-no-delete, r=brson

This primarily blows away all *submodules* as well, which sometimes can be quite
large and take some time to update. Instead, re-use an existing checkout, just
reset it to the right revision if possible.

Also, move the submodule update step to occur unconditionally to account for
corrupt submodule checkouts or interrupted downloads. This update step should be
much faster than `git submodule update` because we're using libgit2, so yay!
Move to rustdoc instead of ruby's middleman

* All markdown files are now rendered with `rustdoc` into HTML
* A JS syntax highlighter, prism, is included for TOML syntax highlighting.
* A new makefile target, `make doc`, will build docs into `target/doc`
auto merge of #550 : alexcrichton/cargo/rustdoc, r=brson

* All markdown files are now rendered with `rustdoc` into HTML
* A JS syntax highlighter, prism, is included for TOML syntax highlighting.
* A new makefile target, `make doc`, will build docs into `target/doc`

preview: http://people.mozilla.org/~acrichton/crates.io/doc/

Closes #524
Fix build break by upgrading git2-rs

Update git2-rs to the latest version which includes a fix for `extern crate`
syntax changes.  This version changes the interface for credential callbacks,
so update the git source provider code as well.
Fix obsolete `extern crate` syntax in some of the tests