HomeFreeBSD

When specifying Git dependencies in Cargo.toml developers can set 3

Description

When specifying Git dependencies in Cargo.toml developers can set 3
additional keys: rev, branch, tag [1]. These are reflected in a
projects' Cargo.lock file as e.g.

git+https://github.com/servo/angle?branch=servo#a1371e8a160128677af863d1d73f150862ba42b2
git+https://github.com/rust-lang/libc?tag=0.2.26#288942e6858a4b2f8ee56338da5386263b9c4b82

Currently cargo-crates.awk generates the wrong output in these cases:

GH_TUPLE= servo:angle?branch=servo:a1371e8a160128677af863d1d73f150862ba42b2:angle \

		rust-lang:libc?tag=0.2.26:288942e6858a4b2f8ee56338da5386263b9c4b82:libc

Fix cargo-crates.awk to ignore the query string (except in the tag
case) and generate

GH_TUPLE= servo:angle:a1371e8a160128677af863d1d73f150862ba42b2:angle \

		rust-lang:libc:0.2.26:libc

instead.

[1] https://github.com/rust-lang/cargo/blob/master/src/doc/specifying-dependencies.md#specifying-dependencies-from-git-repositories

PR: 220548
Reported by: jbeich
Reviewed by: jbeich, mat
Differential Revision: https://reviews.freebsd.org/D11571

Details