MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / slow_import_record_summary

Function slow_import_record_summary

atomic-cli/src/commands/git/parallel.rs:2098–2147  ·  view source on GitHub ↗
(parsed: &ParsedCommit, recorded_files: &[RecordedFile])

Source from the content-addressed store, hash-verified

2096}
2097
2098fn slow_import_record_summary(parsed: &ParsedCommit, recorded_files: &[RecordedFile]) -> String {
2099 let mut added = 0usize;
2100 let mut modified = 0usize;
2101 let mut deleted = 0usize;
2102 let mut renamed = 0usize;
2103 let mut copied = 0usize;
2104 let mut bytes = 0usize;
2105
2106 for file in &parsed.files {
2107 match file.operation {
2108 FileOperation::Added => added += 1,
2109 FileOperation::Modified => modified += 1,
2110 FileOperation::Deleted => deleted += 1,
2111 FileOperation::Renamed => renamed += 1,
2112 FileOperation::Copied => copied += 1,
2113 }
2114 bytes += file.new_content.as_ref().map(|c| c.len()).unwrap_or(0);
2115 bytes += file.old_content.as_ref().map(|c| c.len()).unwrap_or(0);
2116 }
2117
2118 let mut largest: Vec<(&str, usize)> = recorded_files
2119 .iter()
2120 .map(|rec| (rec.path(), rec.content().len()))
2121 .collect();
2122 largest.sort_by(|a, b| b.1.cmp(&a.1).then_with(|| a.0.cmp(b.0)));
2123 let top_paths = largest
2124 .into_iter()
2125 .take(3)
2126 .map(|(path, size)| format!("{} ({})", path, format_byte_count(size)))
2127 .collect::<Vec<_>>();
2128
2129 let top = if top_paths.is_empty() {
2130 "top records: none".to_string()
2131 } else {
2132 format!("top records: {}", top_paths.join(", "))
2133 };
2134
2135 format!(
2136 "records={}, files={}, bytes={}, ops=+{}/~{}/-{} renames={} copies={}; {}",
2137 recorded_files.len(),
2138 parsed.files.len(),
2139 format_byte_count(bytes),
2140 added,
2141 modified,
2142 deleted,
2143 renamed,
2144 copied,
2145 top
2146 )
2147}
2148
2149impl ParallelImporter {
2150 /// Create a new parallel importer.

Callers 1

write_commitMethod · 0.85

Calls 8

as_refMethod · 0.80
cmpMethod · 0.80
lenMethod · 0.45
iterMethod · 0.45
pathMethod · 0.45
contentMethod · 0.45
into_iterMethod · 0.45
is_emptyMethod · 0.45

Tested by

no test coverage detected