move from git2 to gix (#2085)

This commit is contained in:
James Hodgkinson 2023-09-09 14:34:52 +10:00 committed by GitHub
parent d3d80e7364
commit 01677938cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 539 additions and 36 deletions

562
Cargo.lock generated
View file

@ -130,6 +130,12 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d301b3b94cb4b2f23d7917810addbbaff90738e0ca2be692bd027e70d7e0330c"
[[package]]
name = "arc-swap"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
[[package]]
name = "argon2"
version = "0.5.1"
@ -546,6 +552,26 @@ version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfa8873f51c92e232f9bac4065cddef41b714152812bfc5f7672ba16d6ef8cd9"
[[package]]
name = "bstr"
version = "1.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a"
dependencies = [
"memchr",
"regex-automata 0.3.8",
"serde",
]
[[package]]
name = "btoi"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad"
dependencies = [
"num-traits",
]
[[package]]
name = "bumpalo"
version = "3.13.0"
@ -716,6 +742,12 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961"
[[package]]
name = "clru"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807"
[[package]]
name = "color_quant"
version = "1.1.0"
@ -1481,6 +1513,15 @@ dependencies = [
"webdriver",
]
[[package]]
name = "faster-hex"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a"
dependencies = [
"serde",
]
[[package]]
name = "fastrand"
version = "2.0.0"
@ -1719,18 +1760,465 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
[[package]]
name = "git2"
version = "0.17.2"
name = "gix"
version = "0.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b989d6a7ca95a362cf2cfc5ad688b3a467be1f87e480b8dad07fee8c79b0044"
checksum = "06a8c9f9452078f474fecd2880de84819b8c77224ab62273275b646bf785f906"
dependencies = [
"bitflags 1.3.2",
"gix-actor",
"gix-commitgraph",
"gix-config",
"gix-date",
"gix-diff",
"gix-discover",
"gix-features",
"gix-fs",
"gix-glob",
"gix-hash",
"gix-hashtable",
"gix-lock",
"gix-macros",
"gix-object",
"gix-odb",
"gix-pack",
"gix-path",
"gix-ref",
"gix-refspec",
"gix-revision",
"gix-revwalk",
"gix-sec",
"gix-tempfile",
"gix-trace",
"gix-traverse",
"gix-url",
"gix-utils",
"gix-validate",
"once_cell",
"parking_lot 0.12.1",
"smallvec",
"thiserror",
"unicode-normalization",
]
[[package]]
name = "gix-actor"
version = "0.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e8c6778cc03bca978b2575a03e04e5ba6f430a9dd9b0f1259f0a8a9a5e5cc66"
dependencies = [
"bstr",
"btoi",
"gix-date",
"itoa",
"thiserror",
"winnow",
]
[[package]]
name = "gix-chunk"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b42ea64420f7994000130328f3c7a2038f639120518870436d31b8bde704493"
dependencies = [
"thiserror",
]
[[package]]
name = "gix-commitgraph"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4676ede3a7d37e7028e2889830349a6aca22efc1d2f2dd9fa3351c1a8ddb0c6a"
dependencies = [
"bstr",
"gix-chunk",
"gix-features",
"gix-hash",
"memmap2",
"thiserror",
]
[[package]]
name = "gix-config"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1108c4ac88248dd25cc8ab0d0dae796e619fb72d92f88e30e00b29d61bb93cc4"
dependencies = [
"bstr",
"gix-config-value",
"gix-features",
"gix-glob",
"gix-path",
"gix-ref",
"gix-sec",
"memchr",
"once_cell",
"smallvec",
"thiserror",
"unicode-bom",
"winnow",
]
[[package]]
name = "gix-config-value"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea7505b97f4d8e7933e29735a568ba2f86d8de466669d9f0e8321384f9972f47"
dependencies = [
"bitflags 2.4.0",
"bstr",
"gix-path",
"libc",
"libgit2-sys",
"log",
"thiserror",
]
[[package]]
name = "gix-date"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc7df669639582dc7c02737642f76890b03b5544e141caba68a7d6b4eb551e0d"
dependencies = [
"bstr",
"itoa",
"thiserror",
"time 0.3.28",
]
[[package]]
name = "gix-diff"
version = "0.35.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b45e342d148373bd9070d557e6fb1280aeae29a3e05e32506682d027278501eb"
dependencies = [
"gix-hash",
"gix-object",
"thiserror",
]
[[package]]
name = "gix-discover"
version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da4cacda5ee9dd1b38b0e2506834e40e66c08cf050ef55c344334c76745f277b"
dependencies = [
"bstr",
"dunce",
"gix-hash",
"gix-path",
"gix-ref",
"gix-sec",
"thiserror",
]
[[package]]
name = "gix-features"
version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f414c99e1a7abc69b21f3225a6539d203b0513f1d1d448607c4ea81cdcf9ee59"
dependencies = [
"crc32fast",
"flate2",
"gix-hash",
"gix-trace",
"libc",
"once_cell",
"prodash",
"sha1_smol",
"thiserror",
"walkdir",
]
[[package]]
name = "gix-fs"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "404795da3d4c660c9ab6c3b2ad76d459636d1e1e4b37b0c7ff68eee898c298d4"
dependencies = [
"gix-features",
]
[[package]]
name = "gix-glob"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3ac79c444193b0660fe0c0925d338bd338bd643e32138784dccfb12c628b892"
dependencies = [
"bitflags 2.4.0",
"bstr",
"gix-features",
"gix-path",
]
[[package]]
name = "gix-hash"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ccf425543779cddaa4a7c62aba3fa9d90ea135b160be0a72dd93c063121ad4a"
dependencies = [
"faster-hex",
"thiserror",
]
[[package]]
name = "gix-hashtable"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "409268480841ad008e81c17ca5a293393fbf9f2b6c2f85b8ab9de1f0c5176a16"
dependencies = [
"gix-hash",
"hashbrown 0.14.0",
"parking_lot 0.12.1",
]
[[package]]
name = "gix-lock"
version = "9.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1568c3d90594c60d52670f325f5db88c2d572e85c8dd45fabc23d91cadb0fd52"
dependencies = [
"gix-tempfile",
"gix-utils",
"thiserror",
]
[[package]]
name = "gix-macros"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d8acb5ee668d55f0f2d19a320a3f9ef67a6999ad483e11135abcc2464ed18b6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.31",
]
[[package]]
name = "gix-object"
version = "0.36.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e5528d5b2c984044d547e696e44a8c45fa122e83cd8c2ac1da69bd474336be8"
dependencies = [
"bstr",
"btoi",
"gix-actor",
"gix-date",
"gix-features",
"gix-hash",
"gix-validate",
"itoa",
"smallvec",
"thiserror",
"winnow",
]
[[package]]
name = "gix-odb"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0446eca295459deb3d6dd6ed7d44a631479f1b7381d8087166605c7a9f717c6"
dependencies = [
"arc-swap",
"gix-date",
"gix-features",
"gix-hash",
"gix-object",
"gix-pack",
"gix-path",
"gix-quote",
"parking_lot 0.12.1",
"tempfile",
"thiserror",
]
[[package]]
name = "gix-pack"
version = "0.42.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be19ee650300d7cbac5829b637685ec44a8d921a7c2eaff8a245d8f2f008870c"
dependencies = [
"clru",
"gix-chunk",
"gix-features",
"gix-hash",
"gix-hashtable",
"gix-object",
"gix-path",
"gix-tempfile",
"memmap2",
"parking_lot 0.12.1",
"smallvec",
"thiserror",
]
[[package]]
name = "gix-path"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a1d370115171e3ae03c5c6d4f7d096f2981a40ddccb98dfd704c773530ba73b"
dependencies = [
"bstr",
"gix-trace",
"home",
"once_cell",
"thiserror",
]
[[package]]
name = "gix-quote"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "475c86a97dd0127ba4465fbb239abac9ea10e68301470c9791a6dd5351cdc905"
dependencies = [
"bstr",
"btoi",
"thiserror",
]
[[package]]
name = "gix-ref"
version = "0.36.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cccbfa8d5cd9b86465f27a521e0c017de54b92d9fd37c143e49c658a2f04f3a"
dependencies = [
"gix-actor",
"gix-date",
"gix-features",
"gix-fs",
"gix-hash",
"gix-lock",
"gix-object",
"gix-path",
"gix-tempfile",
"gix-validate",
"memmap2",
"thiserror",
"winnow",
]
[[package]]
name = "gix-refspec"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "678ba30d95baa5462df9875628ed40655d5f5b8aba7028de86ed57f36e762c6c"
dependencies = [
"bstr",
"gix-hash",
"gix-revision",
"gix-validate",
"smallvec",
"thiserror",
]
[[package]]
name = "gix-revision"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b3e80a5992ae446fe1745dd26523b86084e3f1b6b3e35377fe09b4f35ac8f151"
dependencies = [
"bstr",
"gix-date",
"gix-hash",
"gix-hashtable",
"gix-object",
"gix-revwalk",
"gix-trace",
"thiserror",
]
[[package]]
name = "gix-revwalk"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b806349bc1f668e09035800e07ac8045da4e39a8925a245d93142c4802224ec1"
dependencies = [
"gix-commitgraph",
"gix-date",
"gix-hash",
"gix-hashtable",
"gix-object",
"smallvec",
"thiserror",
]
[[package]]
name = "gix-sec"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92b9542ac025a8c02ed5d17b3fc031a111a384e859d0be3532ec4d58c40a0f28"
dependencies = [
"bitflags 2.4.0",
"gix-path",
"libc",
"windows 0.48.0",
]
[[package]]
name = "gix-tempfile"
version = "9.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2762b91ff95e27ff3ea95758c0d4efacd7435a1be3629622928b8276de0f72a8"
dependencies = [
"gix-fs",
"libc",
"once_cell",
"parking_lot 0.12.1",
"tempfile",
]
[[package]]
name = "gix-trace"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96b6d623a1152c3facb79067d6e2ecdae48130030cf27d6eb21109f13bd7b836"
[[package]]
name = "gix-traverse"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ec6358f8373fb018af8fc96c9d2ec6a5b66999e2377dc40b7801351fec409ed"
dependencies = [
"gix-commitgraph",
"gix-date",
"gix-hash",
"gix-hashtable",
"gix-object",
"gix-revwalk",
"smallvec",
"thiserror",
]
[[package]]
name = "gix-url"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c79d595b99a6c7ab274f3c991735a0c0f5a816a3da460f513c48edf1c7bf2cc"
dependencies = [
"bstr",
"gix-features",
"gix-path",
"home",
"thiserror",
"url",
]
[[package]]
name = "gix-utils"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b85d89dc728613e26e0ed952a19583744e7f5240fcd4aa30d6c824ffd8b52f0f"
dependencies = [
"fastrand",
]
[[package]]
name = "gix-validate"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e05cab2b03a45b866156e052aa38619f4ece4adcb2f79978bfc249bc3b21b8c5"
dependencies = [
"bstr",
"thiserror",
]
[[package]]
name = "glob"
version = "0.3.1"
@ -2013,6 +2501,15 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "home"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "hostname-validator"
version = "1.1.1"
@ -2344,7 +2841,7 @@ name = "kanidm_build_profiles"
version = "1.1.0-rc.14-dev"
dependencies = [
"base64 0.21.3",
"git2",
"gix",
"serde",
"toml",
]
@ -2736,18 +3233,6 @@ version = "0.2.147"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
[[package]]
name = "libgit2-sys"
version = "0.15.2+1.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a80df2e11fb4a61f4ba2ab42dbe7f74468da143f1a75c74e11dee7c813f694fa"
dependencies = [
"cc",
"libc",
"libz-sys",
"pkg-config",
]
[[package]]
name = "libloading"
version = "0.7.4"
@ -2800,18 +3285,6 @@ dependencies = [
"pkg-config",
]
[[package]]
name = "libz-sys"
version = "1.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
dependencies = [
"cc",
"libc",
"pkg-config",
"vcpkg",
]
[[package]]
name = "linux-raw-sys"
version = "0.4.5"
@ -2899,6 +3372,15 @@ version = "2.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
[[package]]
name = "memmap2"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
dependencies = [
"libc",
]
[[package]]
name = "memoffset"
version = "0.6.5"
@ -3669,6 +4151,12 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "prodash"
version = "26.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50bcc40e3e88402f12b15f94d43a2c7673365e9601cc52795e119b95a266100c"
[[package]]
name = "prokio"
version = "0.1.0"
@ -4275,6 +4763,12 @@ dependencies = [
"digest 0.10.7",
]
[[package]]
name = "sha1_smol"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
[[package]]
name = "sha2"
version = "0.8.2"
@ -4977,6 +5471,12 @@ version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
[[package]]
name = "unicode-bom"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98e90c70c9f0d4d1ee6d0a7d04aa06cb9bbd53d8cfbdd62a0269a7c2eb640552"
[[package]]
name = "unicode-ident"
version = "1.0.11"

View file

@ -120,7 +120,7 @@ fs2 = "^0.4.3"
futures = "^0.3.28"
futures-concurrency = "^3.1.0"
futures-util = { version = "^0.3.21", features = ["sink"] }
git2 = { version = "0.17.2", default-features = false }
gix = { version = "0.53.1", default-features = false }
gloo = "^0.8.1"
hashbrown = { version = "0.14.0", features = ["serde", "inline-more", "ahash"] }
hex = "^0.4.3"

View file

@ -24,4 +24,4 @@ base64 = { workspace = true }
[build-dependencies]
base64 = { workspace = true }
git2 = { workspace = true }
gix = { workspace = true }

View file

@ -6,9 +6,12 @@ use base64::{engine::general_purpose, Engine as _};
// We do this here so it's only actually run and checked once.
fn determine_git_rev() -> Option<String> {
let path = PathBuf::from("../../");
let repo = git2::Repository::open(path).ok()?;
let head = repo.head().ok()?;
let commit = head.peel_to_commit().ok()?;
let repo = match gix::open(path) {
Ok(repo) => repo,
Err(_) => return None,
};
let mut head = repo.head().ok()?;
let commit = head.peel_to_commit_in_place().ok()?;
let mut commit_id = commit.id().to_string();
// Now we actually want to trim this to only 10 chars?
commit_id.truncate(10);