diff --git a/Cargo.lock b/Cargo.lock
index f2a2d0642db..b159fd19a42 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1269,10 +1269,10 @@ dependencies = [
"gix-url",
"itertools",
"jwalk",
- "mime_guess",
"rusqlite",
"serde",
"serde_json",
+ "smallvec",
"tempfile",
"thiserror",
]
@@ -2188,8 +2188,20 @@ dependencies = [
"gix-hashtable 0.2.1",
"gix-object 0.30.0",
"gix-odb",
+ "gix-revwalk",
"gix-testtools",
"serde",
+ "thiserror",
+]
+
+[[package]]
+name = "gix-revwalk"
+version = "0.1.0"
+dependencies = [
+ "gix-commitgraph",
+ "gix-hash 0.11.2",
+ "gix-hashtable 0.2.1",
+ "gix-object 0.30.0",
"smallvec",
"thiserror",
]
@@ -2328,9 +2340,12 @@ dependencies = [
name = "gix-traverse"
version = "0.26.0"
dependencies = [
+ "gix-commitgraph",
"gix-hash 0.11.2",
"gix-hashtable 0.2.1",
"gix-object 0.30.0",
+ "gix-revwalk",
+ "smallvec",
"thiserror",
]
@@ -2338,6 +2353,7 @@ dependencies = [
name = "gix-traverse-tests"
version = "0.0.0"
dependencies = [
+ "gix-commitgraph",
"gix-hash 0.11.2",
"gix-object 0.30.0",
"gix-odb",
@@ -3028,16 +3044,6 @@ version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
-[[package]]
-name = "mime_guess"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
-dependencies = [
- "mime",
- "unicase",
-]
-
[[package]]
name = "minimal-lexical"
version = "0.2.1"
diff --git a/Cargo.toml b/Cargo.toml
index e02963a0b5f..e7039b88d9f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -250,6 +250,7 @@ members = [
"gix-tui",
"gix-tix",
"gix-archive",
+ "gix-revwalk",
"cargo-smart-release",
"tests/tools",
diff --git a/README.md b/README.md
index 72a25df042d..e3e541c3724 100644
--- a/README.md
+++ b/README.md
@@ -80,6 +80,7 @@ is usable to some extent.
* [gix-pathspec](https://github.com/Byron/gitoxide/blob/main/crate-status.md#gix-pathspec)
* [gix-index](https://github.com/Byron/gitoxide/blob/main/crate-status.md#gix-index)
* [gix-revision](https://github.com/Byron/gitoxide/blob/main/crate-status.md#gix-revision)
+ * [gix-revwalk](https://github.com/Byron/gitoxide/blob/main/crate-status.md#gix-revwalk)
* [gix-command](https://github.com/Byron/gitoxide/blob/main/crate-status.md#gix-command)
* [gix-prompt](https://github.com/Byron/gitoxide/blob/main/crate-status.md#gix-prompt)
* [gix-refspec](https://github.com/Byron/gitoxide/blob/main/crate-status.md#gix-refspec)
diff --git a/cargo-smart-release/src/git/history.rs b/cargo-smart-release/src/git/history.rs
index 736f2ef33fa..2176492dbad 100644
--- a/cargo-smart-release/src/git/history.rs
+++ b/cargo-smart-release/src/git/history.rs
@@ -43,13 +43,14 @@ pub fn collect(repo: &gix::Repository) -> anyhow::Result