Skip to content

Commit 698a290

Browse files
committed
adapt to changes in gix-traverse
1 parent f53a9ba commit 698a290

File tree

7 files changed

+33
-2
lines changed

7 files changed

+33
-2
lines changed

gitoxide-core/src/repository/tree.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ mod entries {
5858
}
5959

6060
fn push_element(&mut self, name: &BStr) {
61+
if name.is_empty() {
62+
return;
63+
}
6164
if !self.path.is_empty() {
6265
self.path.push(b'/');
6366
}
@@ -66,6 +69,10 @@ mod entries {
6669
}
6770

6871
impl gix::traverse::tree::Visit for Traverse<'_, '_> {
72+
fn pop_back_tracked_path_and_set_current(&mut self) {
73+
self.path = self.path_deque.pop_back().unwrap_or_default();
74+
}
75+
6976
fn pop_front_tracked_path_and_set_current(&mut self) {
7077
self.path = self.path_deque.pop_front().expect("every parent is set only once");
7178
}
@@ -96,7 +103,7 @@ mod entries {
96103
format_entry(out, entry, self.path.as_bstr(), size).ok();
97104
}
98105
if let Some(size) = size {
99-
self.stats.num_bytes += size as u64;
106+
self.stats.num_bytes += size;
100107
}
101108

102109
use gix::object::tree::EntryKind::*;

gix-diff/src/tree/recorder.rs

+3
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ impl Recorder {
8989
}
9090

9191
fn push_element(&mut self, name: &BStr) {
92+
if name.is_empty() {
93+
return;
94+
}
9295
if !self.path.is_empty() {
9396
self.path.push(b'/');
9497
}

gix-diff/src/tree_with_rewrites/function.rs

+4
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,10 @@ mod tree_to_changes {
239239
}
240240

241241
impl gix_traverse::tree::Visit for Delegate<'_> {
242+
fn pop_back_tracked_path_and_set_current(&mut self) {
243+
self.recorder.pop_back_tracked_path_and_set_current();
244+
}
245+
242246
fn pop_front_tracked_path_and_set_current(&mut self) {
243247
self.recorder.pop_front_tracked_path_and_set_current();
244248
}

gix-index/src/init.rs

+7
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ pub mod from_tree {
126126
}
127127

128128
fn push_element(&mut self, name: &BStr) {
129+
if name.is_empty() {
130+
return;
131+
}
129132
if !self.path.is_empty() {
130133
self.path.push(b'/');
131134
}
@@ -182,6 +185,10 @@ pub mod from_tree {
182185
}
183186

184187
impl Visit for CollectEntries {
188+
fn pop_back_tracked_path_and_set_current(&mut self) {
189+
self.path = self.path_deque.pop_back().unwrap_or_default();
190+
}
191+
185192
fn pop_front_tracked_path_and_set_current(&mut self) {
186193
self.path = self
187194
.path_deque

gix-pack/src/data/output/count/objects/tree.rs

+2
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ pub mod traverse {
9494
where
9595
H: InsertImmutable,
9696
{
97+
fn pop_back_tracked_path_and_set_current(&mut self) {}
98+
9799
fn pop_front_tracked_path_and_set_current(&mut self) {}
98100

99101
fn push_back_tracked_path_component(&mut self, _component: &BStr) {}

gix-worktree-stream/src/from_tree/traverse.rs

+7
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ where
3939
}
4040

4141
fn push_element(&mut self, name: &BStr) {
42+
if name.is_empty() {
43+
return;
44+
}
4245
if !self.path.is_empty() {
4346
self.path.push(b'/');
4447
}
@@ -105,6 +108,10 @@ where
105108
AttributesFn:
106109
FnMut(&BStr, gix_object::tree::EntryMode, &mut gix_attributes::search::Outcome) -> Result<(), Error> + 'static,
107110
{
111+
fn pop_back_tracked_path_and_set_current(&mut self) {
112+
self.path = self.path_deque.pop_back().unwrap_or_default();
113+
}
114+
108115
fn pop_front_tracked_path_and_set_current(&mut self) {
109116
self.path = self
110117
.path_deque

gix/examples/stats.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
3939

4040
let mut delegate = visit::Tree::new(repo.clone());
4141
tree.traverse().breadthfirst(&mut delegate)?;
42-
let _files = tree.traverse().breadthfirst.files()?;
4342

4443
println!("num trees: {}", delegate.num_trees);
4544
println!("num blobs: {}", delegate.num_blobs);
@@ -105,6 +104,8 @@ mod visit {
105104
}
106105
}
107106
impl gix_traverse::tree::Visit for Tree {
107+
fn pop_back_tracked_path_and_set_current(&mut self) {}
108+
108109
fn pop_front_tracked_path_and_set_current(&mut self) {}
109110

110111
fn push_back_tracked_path_component(&mut self, _component: &BStr) {}

0 commit comments

Comments
 (0)