Skip to content

Commit

Permalink
progress for chunk writing (#279)
Browse files Browse the repository at this point in the history
  • Loading branch information
Byron committed Jan 1, 2022
1 parent 389fea2 commit 50fde01
Showing 1 changed file with 19 additions and 12 deletions.
31 changes: 19 additions & 12 deletions git-pack/src/multi_index/write.rs
Original file line number Diff line number Diff line change
Expand Up @@ -143,19 +143,26 @@ impl multi_index::File {
index_paths_sorted.len() as u32,
object_hash,
)?;
let mut chunk_write = cf.into_write(&mut out, bytes_written)?;
while let Some(chunk_to_write) = chunk_write.next_chunk() {
match chunk_to_write {
multi_index::chunk::index_names::ID => {
multi_index::chunk::index_names::write(&index_filenames_sorted, &mut chunk_write)?
}
multi_index::chunk::fanout::ID => multi_index::chunk::fanout::write(&entries, &mut chunk_write)?,
multi_index::chunk::lookup::ID => multi_index::chunk::lookup::write(&entries, &mut chunk_write)?,
multi_index::chunk::offsets::ID => multi_index::chunk::offsets::write(&entries, &mut chunk_write)?,
multi_index::chunk::large_offsets::ID => {
multi_index::chunk::large_offsets::write(&entries, num_large_offsets, &mut chunk_write)?

{
progress.set_name("Writing chunks");
progress.init(Some(cf.num_chunks()), git_features::progress::count("chunks"));

let mut chunk_write = cf.into_write(&mut out, bytes_written)?;
while let Some(chunk_to_write) = chunk_write.next_chunk() {
match chunk_to_write {
multi_index::chunk::index_names::ID => {
multi_index::chunk::index_names::write(&index_filenames_sorted, &mut chunk_write)?
}
multi_index::chunk::fanout::ID => multi_index::chunk::fanout::write(&entries, &mut chunk_write)?,
multi_index::chunk::lookup::ID => multi_index::chunk::lookup::write(&entries, &mut chunk_write)?,
multi_index::chunk::offsets::ID => multi_index::chunk::offsets::write(&entries, &mut chunk_write)?,
multi_index::chunk::large_offsets::ID => {
multi_index::chunk::large_offsets::write(&entries, num_large_offsets, &mut chunk_write)?
}
unknown => unreachable!("BUG: forgot to implement chunk {:?}", std::str::from_utf8(&unknown)),
}
unknown => unreachable!("BUG: forgot to implement chunk {:?}", std::str::from_utf8(&unknown)),
progress.inc();
}
}

Expand Down

0 comments on commit 50fde01

Please sign in to comment.