cargo: bump gix to v0.76.0
Some checks failed
binaries / Build binary artifacts (push) Has been cancelled
website / prerelease-docs-build-deploy (ubuntu-24.04) (push) Has been cancelled
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled

CommitRef now stores raw author/committer headers and parses them when needed.
Since parsing errors would have been detected at .try_to_commit_ref(), this
patch makes new decode errors propagate as before.

Fixes #8350, #8214
This commit is contained in:
Yuya Nishihara 2025-12-23 11:27:05 +09:00
parent 34a1f86862
commit 402bbeae6d
5 changed files with 90 additions and 95 deletions

View file

@ -90,6 +90,9 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
* `jj gerrit upload` now correctly handles mixed explicit and implicit
Change-Ids in chains of commits ([#8219](https://github.com/jj-vcs/jj/pull/8219))
* Fixed problem of loading large Git packfiles.
https://github.com/GitoxideLabs/gitoxide/issues/2265
## [0.36.0] - 2025-12-03
### Release highlights

171
Cargo.lock generated
View file

@ -1199,9 +1199,9 @@ dependencies = [
[[package]]
name = "gix"
version = "0.75.0"
version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60beff35667fb0ac935c4c45941868d9cf5025e4b85c58deb3c5a65113e22ce4"
checksum = "0da205378175c7e08c1d9357be8e6056c541d5907c29842d025b2a732ce06d52"
dependencies = [
"gix-actor",
"gix-attributes",
@ -1249,9 +1249,9 @@ dependencies = [
[[package]]
name = "gix-actor"
version = "0.36.0"
version = "0.36.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "694f6c16eb88b16b00b1d811e4e4bda6f79e9eb467a1b04fd5b848da677baa81"
checksum = "636ca0d7bf8f7ad8ba84a5dda8312c8944b275be09d88b072e08f57d3e47c1e8"
dependencies = [
"bstr",
"gix-date",
@ -1263,9 +1263,9 @@ dependencies = [
[[package]]
name = "gix-attributes"
version = "0.28.1"
version = "0.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc6591add69314fc43db078076a8da6f07957c65abb0b21c3e1b6a3cf50aa18d"
checksum = "f47dabf8a50f1558c3a55d978440c7c4f22f87ac897bef03b4edbc96f6115966"
dependencies = [
"bstr",
"gix-glob",
@ -1311,9 +1311,9 @@ dependencies = [
[[package]]
name = "gix-commitgraph"
version = "0.30.1"
version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "826994ff6c01f1ff00d6a1844d7506717810a91ffed143da71e3bf39369751ef"
checksum = "efdcba8048045baf15225daf949d597c3e6183d130245e22a7fbd27084abe63a"
dependencies = [
"bstr",
"gix-chunk",
@ -1324,9 +1324,9 @@ dependencies = [
[[package]]
name = "gix-config"
version = "0.48.0"
version = "0.49.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9419284839421488b5ab9b9b88386bdc1e159a986c08e17ffa3e9a5cd2b139f5"
checksum = "7f15f96a354d296b505575870c4ebe279552a67132b61223869181d11894859d"
dependencies = [
"bstr",
"gix-config-value",
@ -1344,9 +1344,9 @@ dependencies = [
[[package]]
name = "gix-config-value"
version = "0.15.3"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c489abb061c74b0c3ad790e24a606ef968cebab48ec673d6a891ece7d5aef64"
checksum = "2409cffa4fe8b303847d5b6ba8df9da9ba65d302fc5ee474ea0cac5afde79840"
dependencies = [
"bitflags 2.10.0",
"bstr",
@ -1357,9 +1357,9 @@ dependencies = [
[[package]]
name = "gix-date"
version = "0.11.0"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f94626a5bc591a57025361a3a890092469e47c7667e59fc143439cd6eaf47fe"
checksum = "c0a1259955c76335c9d1a8c511811b10dbc800ffeeca3daea1e0aadd0c98f6b7"
dependencies = [
"bstr",
"itoa",
@ -1370,9 +1370,9 @@ dependencies = [
[[package]]
name = "gix-diff"
version = "0.55.0"
version = "0.56.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfc7735ca267da78c37e916e9b32d67b0b0e3fc9401378920e9469b5d497dccf"
checksum = "3ebc8f56f3300d3c5f98d927b11762ef98e35ddbf9ebf3bdbdb53dbc6d9cbb7e"
dependencies = [
"bstr",
"gix-attributes",
@ -1394,9 +1394,9 @@ dependencies = [
[[package]]
name = "gix-dir"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb9a55642e31c81d235e6ab2a7f00343c0f79e70973245a8a1e1d16c498e3e86"
checksum = "40d285a847a95b3c76c0f7b17143bdc68c917d3f9f772bfd4c83fbadb7497067"
dependencies = [
"bstr",
"gix-discover",
@ -1414,9 +1414,9 @@ dependencies = [
[[package]]
name = "gix-discover"
version = "0.43.0"
version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "809f8dba9fbd7a054894ec222815742b96def1ca08e18c38b1dbc1f737dd213d"
checksum = "3f2fe2922c3358a93f5e5b62c1c6d856f59ed863f5fd2da1929f66567d3b0e12"
dependencies = [
"bstr",
"dunce",
@ -1430,9 +1430,9 @@ dependencies = [
[[package]]
name = "gix-features"
version = "0.44.1"
version = "0.45.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfa64593d1586135102307fb57fb3a9d3868b6b1f45a4da1352cce5070f8916a"
checksum = "ba0ba40b1ca17f2cb3987c8d54e596aba924201cd8e5947098b441067e6686a0"
dependencies = [
"crc32fast",
"crossbeam-channel",
@ -1440,19 +1440,19 @@ dependencies = [
"gix-trace",
"gix-utils",
"libc",
"libz-rs-sys",
"once_cell",
"parking_lot",
"prodash",
"thiserror 2.0.17",
"walkdir",
"zlib-rs",
]
[[package]]
name = "gix-filter"
version = "0.22.0"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e137e7df1ae40fe2b49dcb2845c6bf7ac04cd53a320d72e761c598a6fd452ed"
checksum = "22c005832d42de07bacdef53d3b87f6067e765b9753f85788655a1b4a20fc2b6"
dependencies = [
"bstr",
"encoding_rs",
@ -1471,9 +1471,9 @@ dependencies = [
[[package]]
name = "gix-fs"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f1ecd896258cdc5ccd94d18386d17906b8de265ad2ecf68e3bea6b007f6a28f"
checksum = "95b160a13547a64d67a02d894e4f5502a2a5f98635c89931f6bb9c7a4c80c7db"
dependencies = [
"bstr",
"fastrand",
@ -1485,9 +1485,9 @@ dependencies = [
[[package]]
name = "gix-glob"
version = "0.22.1"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74254992150b0a88fdb3ad47635ab649512dff2cbbefca7916bb459894fc9d56"
checksum = "e8546300aee4c65c5862c22a3e321124a69b654a61a8b60de546a9284812b7e2"
dependencies = [
"bitflags 2.10.0",
"bstr",
@ -1497,9 +1497,9 @@ dependencies = [
[[package]]
name = "gix-hash"
version = "0.20.1"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "826036a9bee95945b0be1e2394c64cd4289916c34a639818f8fd5153906985c1"
checksum = "0799db4b114b97da340a3acd6b65f4ef4d325a590acef867ab0e51729b8b761c"
dependencies = [
"faster-hex",
"gix-features",
@ -1509,9 +1509,9 @@ dependencies = [
[[package]]
name = "gix-hashtable"
version = "0.10.0"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a27d4a3ea9640da504a2657fef3419c517fd71f1767ad8935298bcc805edd195"
checksum = "222f7428636020bef272a87ed833ea48bf5fb3193f99852ae16fbb5a602bd2f0"
dependencies = [
"gix-hash",
"hashbrown 0.16.1",
@ -1520,9 +1520,9 @@ dependencies = [
[[package]]
name = "gix-ignore"
version = "0.17.1"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93b6a9679a1488123b7f2929684bacfd9cd2a24f286b52203b8752cbb8d7fc49"
checksum = "dfa727fdf54fd9fb53fa3fbb1a5c17172d3073e8e336bf155f3cac3e25b81b21"
dependencies = [
"bstr",
"gix-glob",
@ -1533,9 +1533,9 @@ dependencies = [
[[package]]
name = "gix-index"
version = "0.43.0"
version = "0.44.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eab6410318b98750883eb3e35eb999abfb155b407eb0580726d4d868b60cde04"
checksum = "015374c00aff762bb21dafbb73a2267583392b320cb4aef156805838752a4152"
dependencies = [
"bitflags 2.10.0",
"bstr",
@ -1561,9 +1561,9 @@ dependencies = [
[[package]]
name = "gix-lock"
version = "19.0.0"
version = "20.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "729d7857429a66023bc0c29d60fa21d0d6ae8862f33c1937ba89e0f74dd5c67f"
checksum = "beefa8f90ef048ab98375217777c6e74c53c9639b0c2978ea1886c41e7005322"
dependencies = [
"gix-tempfile",
"gix-utils",
@ -1572,9 +1572,9 @@ dependencies = [
[[package]]
name = "gix-object"
version = "0.52.0"
version = "0.53.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84743d1091c501a56f00d7f4c595cb30f20fcef6503b32ac0a1ff3817efd7b5d"
checksum = "7ec9557a30ab9abfec4d67975413e3099509ed5da599c901ea40f7da52755128"
dependencies = [
"bstr",
"gix-actor",
@ -1593,9 +1593,9 @@ dependencies = [
[[package]]
name = "gix-odb"
version = "0.72.0"
version = "0.73.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f81b480252f3a4d55f87e6e358c4c6f7615f98b1742e1e70118c57282a92e82"
checksum = "6a7eb6f7017bf94ce8cf00da03a8a32d4199fcbee6940c5bba213ca98d01d78f"
dependencies = [
"arc-swap",
"gix-date",
@ -1614,9 +1614,9 @@ dependencies = [
[[package]]
name = "gix-pack"
version = "0.62.0"
version = "0.63.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38e868463538731a0fd99f3950637957413bbfbe69143520c0b5c1e163303577"
checksum = "bb0811847c93e98e1694ae0f519fb52af62da1cebeaf0a764840e392c6e41b38"
dependencies = [
"clru",
"gix-chunk",
@ -1657,9 +1657,9 @@ dependencies = [
[[package]]
name = "gix-pathspec"
version = "0.13.0"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d05e28457dca7c65a2dbe118869aab922a5bd382b7bb10cff5354f366845c128"
checksum = "ed9e0c881933c37a7ef45288d6c5779c4a7b3ad240b4c37657e1d9829eb90085"
dependencies = [
"bitflags 2.10.0",
"bstr",
@ -1672,9 +1672,9 @@ dependencies = [
[[package]]
name = "gix-protocol"
version = "0.53.0"
version = "0.54.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6947d3b919ec8d10738f4251905a8485366ffdd24942cdbe9c6b69376bf57d64"
checksum = "21348ce0b01fb5e3850e9014733d5ddf6bfeebb100967246572e6b02a29a4fef"
dependencies = [
"bstr",
"gix-date",
@ -1702,9 +1702,9 @@ dependencies = [
[[package]]
name = "gix-ref"
version = "0.55.0"
version = "0.56.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e51330a32f173c8e831731dfef8e93a748c23c057f4b028841f222564cad84cb"
checksum = "16f21c66e188cb95207d30c9b2d21b0d234f570dbb97d8fd493081b6990dcb9d"
dependencies = [
"gix-actor",
"gix-features",
@ -1723,9 +1723,9 @@ dependencies = [
[[package]]
name = "gix-refspec"
version = "0.33.0"
version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f88233214a302d61e60bb9d1387043c1759b761dba4a8704b341fecbf6b1266"
checksum = "853157fd71394f7f382af2e28a7cd78c5c7bd28b7c5d7de7272e1ec97a869159"
dependencies = [
"bstr",
"gix-glob",
@ -1738,9 +1738,9 @@ dependencies = [
[[package]]
name = "gix-revision"
version = "0.37.0"
version = "0.38.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffe7f489bd27e7e388885210bc189088012db6062ccc75d713d1cef8eff56883"
checksum = "63c1956637d13fe273178f425c04b0458ea678c150cb8ed325957a63cb1136f6"
dependencies = [
"bstr",
"gix-commitgraph",
@ -1753,9 +1753,9 @@ dependencies = [
[[package]]
name = "gix-revwalk"
version = "0.23.0"
version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd2fae8449d97fb92078c46cb63544e0024955f43738a610d24277a3b01d5a00"
checksum = "276d6ce81e71c18e6c9c3de2c5015e85a7495d1bf33e0a7587e997b8bd040715"
dependencies = [
"gix-commitgraph",
"gix-date",
@ -1780,9 +1780,9 @@ dependencies = [
[[package]]
name = "gix-shallow"
version = "0.6.0"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2374692db1ee1ffa0eddcb9e86ec218f7c4cdceda800ebc5a9fdf73a8c08223"
checksum = "9c1c467fb9f7ec1d33613c2ea5482de514bcb84b8222a793cdc4c71955832356"
dependencies = [
"bstr",
"gix-hash",
@ -1792,9 +1792,9 @@ dependencies = [
[[package]]
name = "gix-status"
version = "0.22.0"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53c9ad16b4d9da73d527eb6d1be05de9e0641855b8084b362dd657255684f81f"
checksum = "1084eb17030ddbda1705c94ff6f79678dd7f15762deda74edf0f38e33711079c"
dependencies = [
"bstr",
"filetime",
@ -1815,9 +1815,9 @@ dependencies = [
[[package]]
name = "gix-submodule"
version = "0.22.0"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b79f64c669d8578f45046b3ffb8d4d9cc4beb798871ff638a7b5c1f59dbd2fc"
checksum = "fe0b0d02a3c5968a2d86de2a56ab28c3b50aa28d8324d49383b7bd71d26e6d84"
dependencies = [
"bstr",
"gix-config",
@ -1830,9 +1830,9 @@ dependencies = [
[[package]]
name = "gix-tempfile"
version = "19.0.1"
version = "20.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e265fc6b54e57693232a79d84038381ebfda7b1a3b1b8a9320d4d5fe6e820086"
checksum = "816bbb99bbf8cd329e38342594528506f224c4937a6341dbd1d16ee4082f621c"
dependencies = [
"dashmap",
"gix-fs",
@ -1843,15 +1843,15 @@ dependencies = [
[[package]]
name = "gix-trace"
version = "0.1.15"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d3f59a8de2934f6391b6b3a1a7654eae18961fcb9f9c843533fed34ad0f3457"
checksum = "edd971cd6961fb1ebb29a0052a4ab04d8498dbf363c122e137b04753a3bbb5c3"
[[package]]
name = "gix-transport"
version = "0.50.0"
version = "0.51.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e058d6667165dba7642b3c293d7c355e2a964acef9bc9408604547d952943a8f"
checksum = "03c5445af84383b949856a36accfde9f90bdfc10bb1f640f105917f9d5419509"
dependencies = [
"bstr",
"gix-command",
@ -1865,9 +1865,9 @@ dependencies = [
[[package]]
name = "gix-traverse"
version = "0.49.0"
version = "0.50.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "054c79f4c3f87e794ff7dc1fec8306a2bb563cfb38f6be2dc0e4c0fa82f74d59"
checksum = "c1f7582730a236aba16b4c9a5e9ac64bcbe7f155a38ae5938320de96760beb23"
dependencies = [
"bitflags 2.10.0",
"gix-commitgraph",
@ -1882,9 +1882,9 @@ dependencies = [
[[package]]
name = "gix-url"
version = "0.33.2"
version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d995249a1cf1ad79ba10af6499d4bf37cb78035c0983eaa09ec5910da694957c"
checksum = "cff1996dfb9430b3699d89224c674169c1ae355eacc52bf30a03c0b8bffe73d9"
dependencies = [
"bstr",
"gix-features",
@ -1916,9 +1916,9 @@ dependencies = [
[[package]]
name = "gix-worktree"
version = "0.44.0"
version = "0.45.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "428e8928e0e27341b58aa89e20adaf643efd6a8f863bc9cdf3ec6199c2110c96"
checksum = "e0ac49293df83b81da60ad8313f0376a5a7d6b11739ea7e97c0e1ba17b63d2a6"
dependencies = [
"bstr",
"gix-attributes",
@ -1935,9 +1935,9 @@ dependencies = [
[[package]]
name = "gix-worktree-state"
version = "0.22.0"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e12c7c67138e02717dd87d3cd63065cdd1b6abf8e2aca46f575dc6a99def48c"
checksum = "35c6ca09a99ff8d95b4ab4085a94547f89e39164ef23989f9df07257a353f7ef"
dependencies = [
"bstr",
"gix-features",
@ -2563,15 +2563,6 @@ dependencies = [
"escape8259",
]
[[package]]
name = "libz-rs-sys"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd"
dependencies = [
"zlib-rs",
]
[[package]]
name = "linux-raw-sys"
version = "0.4.15"
@ -5060,9 +5051,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
[[package]]
name = "winnow"
version = "0.7.13"
version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf"
checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
dependencies = [
"memchr",
]
@ -5194,6 +5185,6 @@ dependencies = [
[[package]]
name = "zlib-rs"
version = "0.5.2"
version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2"
checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3"

View file

@ -49,7 +49,7 @@ either = "1.15.0"
erased-serde = "0.4.9"
etcetera = "0.11.0"
futures = "0.3.31"
gix = { version = "0.75.0", default-features = false, features = [
gix = { version = "0.76.0", default-features = false, features = [
"attributes",
"blob-diff",
"index",

View file

@ -580,6 +580,7 @@ fn commit_from_git_without_root_parent(
git_object: &gix::Object,
is_shallow: bool,
) -> BackendResult<Commit> {
let decode_err = |err: gix::objs::decode::Error| to_read_object_err(err, id);
let commit = git_object
.try_to_commit_ref()
.map_err(|err| to_read_object_err(err, id))?;
@ -613,8 +614,8 @@ fn commit_from_git_without_root_parent(
// nothing.
// TODO: what should we do with commit.encoding?
let description = String::from_utf8_lossy(commit.message).into_owned();
let author = signature_from_git(commit.author());
let committer = signature_from_git(commit.committer());
let author = signature_from_git(commit.author().map_err(decode_err)?);
let committer = signature_from_git(commit.committer().map_err(decode_err)?);
// If the commit is signed, extract both the signature and the signed data
// (which is the commit buffer with the gpgsig header omitted).
@ -629,7 +630,7 @@ fn commit_from_git_without_root_parent(
.any(|(k, _)| *k == "gpgsig" || *k == "gpgsig-sha256")
.then(|| CommitRefIter::signature(&git_object.data))
.transpose()
.map_err(|err| to_read_object_err(err, id))?
.map_err(decode_err)?
.flatten()
.map(|(sig, data)| SecureSig {
data: data.to_bstring().into(),

View file

@ -424,7 +424,7 @@ fn test_jj_trees_header_with_one_tree() {
let git_commit = git_repo.find_commit(git_commit_id).unwrap();
// Add `jj:trees` with a single tree which is different from the Git commit tree
let mut new_commit: gix::objs::Commit = git_commit.decode().unwrap().into();
let mut new_commit: gix::objs::Commit = git_commit.decode().unwrap().try_into().unwrap();
new_commit.extra_headers = vec![(
JJ_TREES_COMMIT_HEADER.into(),
tree_2.id().to_string().into(),