Printing modifications only once in pijul diff

pmeunier
Jul 21, 2021, 2:16 PM
OQQ4TGEMWDB6JXZ4H4D2XQJE3PDLINTZ4YCL2O2EVG67CDSAM35AC

Dependencies

  • [2] AGTMM5U7 More informative diff --short
  • [3] YDKNUL6B Add `diff --short` that lists changes without showing them
  • [4] L4JXJHWX pijul/*: reorganize imports and remove extern crate
  • [5] CCFJ7VO3 Renaming "Record" to "Hunk" in the changes
  • [6] EUZFFJSO Updating Pijul with the latest changes in Libpijul
  • [7] I24UEJQL Various post-fire fixes
  • [8] HSEYMLO2 Adding an untracked change iterator
  • [9] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [10] I52XSRUH Massive cleanup, and simplification

Change contents

  • replacement in pijul/src/commands/diff.rs at line 1
    [3.173662][3.173662:173694]()
    use std::collections::BTreeMap;
    [3.173551]
    [3.173694]
    use std::collections::{BTreeMap, BTreeSet};
  • edit in pijul/src/commands/diff.rs at line 157
    [3.169][2.48:85]()
    use std::fmt::Write;
  • replacement in pijul/src/commands/diff.rs at line 159
    [2.165][2.165:250]()
    write!(changes.entry(path).or_insert(String::new()), "MV,")?
    [2.165]
    [2.250]
    changes.entry(path).or_insert(BTreeSet::new()).insert("MV")
  • replacement in pijul/src/commands/diff.rs at line 162
    [2.324][2.324:408]()
    write!(changes.entry(path).or_insert(String::new()), "D,")?
    [2.324]
    [2.408]
    changes.entry(path).or_insert(BTreeSet::new()).insert("D")
  • replacement in pijul/src/commands/diff.rs at line 165
    [2.484][2.484:569]()
    write!(changes.entry(path).or_insert(String::new()), "UD,")?
    [2.484]
    [2.569]
    changes.entry(path).or_insert(BTreeSet::new()).insert("UD")
  • replacement in pijul/src/commands/diff.rs at line 168
    [2.643][2.643:727]()
    write!(changes.entry(path).or_insert(String::new()), "A,")?
    [2.643]
    [2.727]
    changes.entry(path).or_insert(BTreeSet::new()).insert("A")
  • replacement in pijul/src/commands/diff.rs at line 171
    [2.811][2.811:896]()
    write!(changes.entry(path).or_insert(String::new()), "SC,")?
    [2.811]
    [2.896]
    changes.entry(path).or_insert(BTreeSet::new()).insert("SC")
  • replacement in pijul/src/commands/diff.rs at line 174
    [2.982][2.982:1067]()
    write!(changes.entry(path).or_insert(String::new()), "UC,")?
    [2.982]
    [2.1067]
    changes.entry(path).or_insert(BTreeSet::new()).insert("UC")
  • replacement in pijul/src/commands/diff.rs at line 179
    [3.4812][2.1090:1176]()
    } => write!(changes.entry(path).or_insert(String::new()), "M,")?,
    [3.4812]
    [3.1334]
    } => changes.entry(path).or_insert(BTreeSet::new()).insert("M"),
  • replacement in pijul/src/commands/diff.rs at line 183
    [3.4981][2.1177:1263]()
    } => write!(changes.entry(path).or_insert(String::new()), "R,")?,
    [3.4981]
    [3.1375]
    } => changes.entry(path).or_insert(BTreeSet::new()).insert("R"),
  • replacement in pijul/src/commands/diff.rs at line 187
    [3.5157][2.1264:1351]()
    } => write!(changes.entry(path).or_insert(String::new()), "SC,")?,
    [3.5157]
    [3.1423]
    } => changes.entry(path).or_insert(BTreeSet::new()).insert("SC"),
  • replacement in pijul/src/commands/diff.rs at line 191
    [3.5335][2.1352:1439]()
    } => write!(changes.entry(path).or_insert(String::new()), "SC,")?,
    [3.5335]
    [3.1473]
    } => changes.entry(path).or_insert(BTreeSet::new()).insert("SC"),
  • replacement in pijul/src/commands/diff.rs at line 195
    [3.5509][2.1440:1545]()
    } => write!(changes.entry(path).or_insert(String::new()), "RZ,")?,
    }
    [3.5509]
    [3.1499]
    } => changes.entry(path).or_insert(BTreeSet::new()).insert("RZ"),
    };
  • replacement in pijul/src/commands/diff.rs at line 198
    [3.1513][2.1546:1624]()
    let al = changes.iter().map(|(_, v)| v.len()).max().unwrap_or(0);
    [3.1513]
    [2.1624]
    let al = changes
    .iter()
    .map(|(_, v)| v.iter().map(|x| x.len()).sum::<usize>() + v.len() - 1)
    .max()
    .unwrap_or(0);
  • replacement in pijul/src/commands/diff.rs at line 204
    [2.1700][2.1700:1736]()
    for (k, v) in changes {
    [2.1700]
    [2.1736]
    for (k, v) in changes.iter() {
    let mut is_first = true;
    for v in v.iter() {
    if is_first {
    write!(stdout, "{}", v)?;
    } else {
    write!(stdout, ",{}", v)?;
    }
    is_first = false;
    }
  • replacement in pijul/src/commands/diff.rs at line 215
    [2.1797][2.1797:1875]()
    writeln!(stdout, "{}{} {}", v.trim_end_matches(','), sp, k)?;
    [2.1797]
    [3.1885]
    writeln!(stdout, "{} {}", sp, k)?;