Cargo-Patch
is a Cargo Subcommand which allows
patching dependencies using patch files.
Simply run:
sh
cargo install cargo-patch
To patch a dependecy one has to add the following
to Cargo.toml
:
toml
[package.metadata.patch.serde]
patches = [
"test.patch"
]
It specifies which dependency to patch (in this case serde) and one or more patchfiles to apply. Running:
sh
cargo patch
will download the serde package specified in the
dependency section to the target/patch
folder
and apply the given patches. To use the patched
version one has to override the dependency using
replace
like this
toml
[patch.crates-io]
serde = { path = './target/patch/serde-1.0.110' }
You can either use diff or git to create patch files. Important is that file paths are relativ and inside the dependency