From 1700346a9e9fe36b6e5b6858fc9a03d63f4fa37e Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Tue, 21 Nov 2017 14:21:26 -0600 Subject: [PATCH] Clarify that [patch] can also use sources that are not crates.io --- src/doc/manifest.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/doc/manifest.md b/src/doc/manifest.md index a8afb6613..74f761d9e 100644 --- a/src/doc/manifest.md +++ b/src/doc/manifest.md @@ -720,19 +720,28 @@ other copies. The syntax is similar to the `[dependencies]` section: [patch.crates-io] foo = { git = 'https://github.com/example/foo' } bar = { path = 'my/local/bar' } + +[dependencies.baz] +git = 'https://github.com/example/baz' + +[patch.'https://github.com/example/baz'] +baz = { git = 'https://github.com/example/patched-baz', branch='my-branch' } ``` The `[patch]` table is made of dependency-like sub-tables. Each key after `[patch]` is a URL of the source that's being patched, or `crates-io` if you're modifying the https://crates.io registry. In the example above `crates-io` could be replaced with a git URL such as -`https://github.com/rust-lang-nursery/log`. +`https://github.com/rust-lang-nursery/log`; the second `[patch]` +section in the example uses this to specify a source called `baz`. Each entry in these tables is a normal dependency specification, the same as found in the `[dependencies]` section of the manifest. The dependencies listed in the `[patch]` section are resolved and used to patch the source at the URL specified. The above manifest snippet patches the `crates-io` source (e.g. -crates.io itself) with the `foo` crate and `bar` crate. +crates.io itself) with the `foo` crate and `bar` crate. It also +patches the `https://github.com/example/baz` source with a `my-branch` that +comes from elsewhere. Sources can be patched with versions of crates that do not exist, and they can also be patched with versions of crates that already exist. If a source is -- 2.30.2