More informative diff --short
Dependencies
- [2]
HSEYMLO2Adding an untracked change iterator - [3]
CCFJ7VO3Renaming "Record" to "Hunk" in the changes - [4]
ZPGXYRIHpijul diff: println should really be writeln everywhere - [5]
VSTBTRYEFixing a compilation error - [6]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [7]
YDKNUL6BAdd `diff --short` that lists changes without showing them - [8]
BZSC7VMYaddress clippy lints - [9]
I52XSRUHMassive cleanup, and simplification
Change contents
- replacement in pijul/src/commands/diff.rs at line 145
let mut changes = Vec::new();let mut changes = BTreeMap::new(); - replacement in pijul/src/commands/diff.rs at line 147
changes.push(match ch {Hunk::FileMove { path, .. } => format!("MV {}\n", path),Hunk::FileDel { path, .. } => format!("D {}\n", path),Hunk::FileUndel { path, .. } => format!("UD {}\n", path),Hunk::FileAdd { path, .. } => format!("A {}", path),Hunk::SolveNameConflict { path, .. } => format!("SC {}", path),Hunk::UnsolveNameConflict { path, .. } => format!("UC {}", path),use std::fmt::Write;match ch {Hunk::FileMove { path, .. } => {write!(changes.entry(path).or_insert(String::new()), "MV,")?}Hunk::FileDel { path, .. } => {write!(changes.entry(path).or_insert(String::new()), "D,")?}Hunk::FileUndel { path, .. } => {write!(changes.entry(path).or_insert(String::new()), "UD,")?}Hunk::FileAdd { path, .. } => {write!(changes.entry(path).or_insert(String::new()), "A,")?}Hunk::SolveNameConflict { path, .. } => {write!(changes.entry(path).or_insert(String::new()), "SC,")?}Hunk::UnsolveNameConflict { path, .. } => {write!(changes.entry(path).or_insert(String::new()), "UC,")?} - replacement in pijul/src/commands/diff.rs at line 170
} => format!("M {}", path),} => write!(changes.entry(path).or_insert(String::new()), "M,")?, - replacement in pijul/src/commands/diff.rs at line 174
} => format!("R {}", path),} => write!(changes.entry(path).or_insert(String::new()), "R,")?, - replacement in pijul/src/commands/diff.rs at line 178
} => format!("SC {}", path),} => write!(changes.entry(path).or_insert(String::new()), "SC,")?, - replacement in pijul/src/commands/diff.rs at line 182
} => format!("UC {}", path),} => write!(changes.entry(path).or_insert(String::new()), "SC,")?, - replacement in pijul/src/commands/diff.rs at line 186
} => format!("RZ {}", path),});} => write!(changes.entry(path).or_insert(String::new()), "RZ,")?,} - replacement in pijul/src/commands/diff.rs at line 189
changes.sort_unstable();changes.dedup();for ch in changes {writeln!(stdout, "{}", ch)?;let al = changes.iter().map(|(_, v)| v.len()).max().unwrap_or(0);let spaces: String = std::iter::repeat(' ').take(al).collect();for (k, v) in changes {let (sp, _) = spaces.split_at(al - v.len());writeln!(stdout, "{}{} {}", v.trim_end_matches(','), sp, k)?;