show first line of change message in conflict markers

rohan
May 20, 2022, 10:23 AM
GQTC4TJABT3U6DDUBSILVUIGW2XHAHEDDT2QMJYLKT4ONSIV4PRQC

Dependencies

  • [2] 7GQSGIV5 Fixing conflict identifiers (some nested conflicts were wrong)
  • [3] YHG37GA4 Removing one buffer copy in VertexBuffer
  • [4] Z6FWHKCA Improving the UI around zombie conflicts
  • [5] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [6] DNQHXWRZ address clippy hard errors
  • [7] I52XSRUH Massive cleanup, and simplification
  • [8] IYJZVLET Cleaning up the literate programming bits
  • [9] WKX5S4Z4 remove unneccesary explicit lifetimes
  • [10] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [11] VO5OQW4W Removing anyhow in libpijul
  • [12] Y7YAFMFF Fix path prefix striping on Windows.
  • [13] JACZYXK4 Fixing a bug in unrecord
  • [14] L4JXJHWX pijul/*: reorganize imports and remove extern crate
  • [15] GUL4M5FI Cleanup and formatting
  • [16] TVVW53HZ Conflict resolution
  • [17] YXAVFTPP Allowing vertex buffer to use references to the transaction, by changing `output::output` to take an ArcTxn<T> instead of a simple T
  • [18] PIQCNEEB Upgrading to Clap 3.0.0-alpha.5
  • [19] GA3P7FOM Nicer conflict markers
  • [*] I24UEJQL Various post-fire fixes

Change contents

  • replacement in pijul/src/commands/credit.rs at line 7
    [3.1431][3.178808:178851](),[3.178808][3.178808:178851]()
    use libpijul::vertex_buffer::VertexBuffer;
    [3.1431]
    [3.18103]
    use libpijul::changestore::ChangeStore;
    use libpijul::vertex_buffer::{change_message, VertexBuffer};
  • replacement in pijul/src/commands/credit.rs at line 162
    [3.182632][3.0:31]()
    fn output_conflict_marker(
    [3.182632]
    [3.31]
    fn output_conflict_marker<C: ChangeStore>(
  • replacement in pijul/src/commands/credit.rs at line 166
    [3.91][3.91:116]()
    sides: &[&Hash],
    [3.91]
    [3.116]
    sides: Option<(&C, &[&Hash])>,
  • replacement in pijul/src/commands/credit.rs at line 172
    [3.249][3.249:370](),[3.97][3.182846:182856](),[3.370][3.182846:182856](),[3.182846][3.182846:182856]()
    for side in sides {
    let h = side.to_base32();
    write!(self.w, " [{}]", h.split_at(8).0)?;
    }
    [3.249]
    [3.371]
    match sides {
    Some((changes, sides)) => {
    for side in sides.into_iter() {
    let h = side.to_base32();
    write!(
    self.w,
    " [{} {}]",
    h.split_at(8).0,
    change_message(changes, side)
    )?;
    }
    }
    None => (),
    };
  • replacement in libpijul/src/vertex_buffer.rs at line 1
    [3.217258][3.217258:217282]()
    use crate::pristine::*;
    [3.217202]
    [3.217282]
    use crate::{changestore::ChangeStore, pristine::*};
  • replacement in libpijul/src/vertex_buffer.rs at line 19
    [3.217953][3.660:691]()
    fn output_conflict_marker(
    [3.217953]
    [3.691]
    fn output_conflict_marker<C: ChangeStore>(
  • replacement in libpijul/src/vertex_buffer.rs at line 23
    [3.746][3.746:771]()
    sides: &[&Hash],
    [3.746]
    [3.771]
    sides: Option<(&C, &[&Hash])>,
  • replacement in libpijul/src/vertex_buffer.rs at line 25
    [3.808][3.808:900]()
    fn begin_conflict(&mut self, id: usize, side: &[&Hash]) -> Result<(), std::io::Error> {
    [3.808]
    [3.900]
    fn begin_conflict<C: ChangeStore>(
    &mut self,
    id: usize,
    side: Option<(&C, &[&Hash])>,
    ) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/vertex_buffer.rs at line 32
    [3.218153][3.961:991]()
    fn begin_zombie_conflict(
    [3.218153]
    [3.991]
    fn begin_zombie_conflict<C: ChangeStore>(
  • replacement in libpijul/src/vertex_buffer.rs at line 35
    [3.1029][3.1029:1056]()
    add_del: &[&Hash],
    [3.1029]
    [3.1056]
    add_del: Option<(&C, &[&Hash])>,
  • replacement in libpijul/src/vertex_buffer.rs at line 39
    [3.218260][3.1158:1300]()
    fn begin_cyclic_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.output_conflict_marker(START_MARKER, id, &[])
    [3.218260]
    [3.218361]
    fn begin_cyclic_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.output_conflict_marker::<C>(START_MARKER, id, None)
  • replacement in libpijul/src/vertex_buffer.rs at line 42
    [3.218367][3.1301:1392]()
    fn conflict_next(&mut self, id: usize, side: &[&Hash]) -> Result<(), std::io::Error> {
    [3.218367]
    [3.1392]
    fn conflict_next<C: ChangeStore>(
    &mut self,
    id: usize,
    side: Option<(&C, &[&Hash])>,
    ) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/vertex_buffer.rs at line 49
    [3.218483][3.1450:1581]()
    fn end_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.output_conflict_marker(END_MARKER, id, &[])
    [3.218483]
    [3.218593]
    fn end_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.output_conflict_marker::<C>(END_MARKER, id, None)
  • replacement in libpijul/src/vertex_buffer.rs at line 52
    [3.218599][3.1582:1693]()
    fn end_zombie_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.end_conflict(id)
    [3.218599]
    [3.218716]
    fn end_zombie_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.end_conflict::<C>(id)
  • replacement in libpijul/src/vertex_buffer.rs at line 55
    [3.218722][3.1694:1832]()
    fn end_cyclic_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.output_conflict_marker(END_MARKER, id, &[])
    [3.218722]
    [3.218839]
    fn end_cyclic_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.output_conflict_marker::<C>(END_MARKER, id, None)
  • replacement in libpijul/src/vertex_buffer.rs at line 115
    [3.220451][3.1833:1864]()
    fn output_conflict_marker(
    [3.220451]
    [3.1864]
    fn output_conflict_marker<C: ChangeStore>(
  • replacement in libpijul/src/vertex_buffer.rs at line 119
    [3.1919][3.1919:1944]()
    sides: &[&Hash],
    [3.1919]
    [3.1944]
    sides: Option<(&C, &[&Hash])>,
  • replacement in libpijul/src/vertex_buffer.rs at line 130
    [3.2115][3.2115:2236](),[3.195][3.220833:220843](),[3.2236][3.220833:220843](),[3.220833][3.220833:220843]()
    for side in sides {
    let h = side.to_base32();
    write!(self.w, " [{}]", h.split_at(8).0)?;
    }
    [3.2115]
    [3.2237]
    match sides {
    Some((changes, sides)) => {
    for side in sides {
    let h = side.to_base32();
    write!(
    self.w,
    " [{} {}]",
    h.split_at(8).0,
    change_message(changes, side)
    )?;
    }
    }
    None => (),
    };
  • replacement in libpijul/src/vertex_buffer.rs at line 149
    [3.220895][3.2272:2364]()
    fn begin_conflict(&mut self, id: usize, side: &[&Hash]) -> Result<(), std::io::Error> {
    [3.220895]
    [3.220959]
    fn begin_conflict<C: ChangeStore>(
    &mut self,
    id: usize,
    sides: Option<(&C, &[&Hash])>,
    ) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/vertex_buffer.rs at line 158
    [3.221103][3.2365:2425]()
    self.output_conflict_marker(START_MARKER, id, side)
    [3.221103]
    [3.221153]
    self.output_conflict_marker(START_MARKER, id, sides)
  • replacement in libpijul/src/vertex_buffer.rs at line 160
    [3.221159][3.2426:2456]()
    fn begin_zombie_conflict(
    [3.221159]
    [3.2456]
    fn begin_zombie_conflict<C: ChangeStore>(
  • replacement in libpijul/src/vertex_buffer.rs at line 163
    [3.2494][3.2494:2521]()
    add_del: &[&Hash],
    [3.2494]
    [3.2521]
    add_del: Option<(&C, &[&Hash])>,
  • replacement in libpijul/src/vertex_buffer.rs at line 171
    [3.221431][3.2624:2707]()
    fn begin_cyclic_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    [3.221431]
    [3.221502]
    fn begin_cyclic_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/vertex_buffer.rs at line 176
    [3.221647][3.2708:2767]()
    self.output_conflict_marker(START_MARKER, id, &[])
    [3.221647]
    [3.221697]
    self.output_conflict_marker::<C>(START_MARKER, id, None)
    }
    }
    pub fn change_message<C: ChangeStore>(changes: &C, hash: &Hash) -> String {
    match changes.get_header(hash) {
    Ok(header) => header.message.lines().next().unwrap().to_string(),
    Err(_e) => "".to_string(),
  • replacement in libpijul/src/vertex_buffer.rs at line 240
    [3.222923][3.2768:2799]()
    fn output_conflict_marker(
    [3.222923]
    [3.2799]
    fn output_conflict_marker<C: ChangeStore>(
  • replacement in libpijul/src/vertex_buffer.rs at line 244
    [3.2854][3.2854:2879]()
    sides: &[&Hash],
    [3.2854]
    [3.2879]
    sides: Option<(&C, &[&Hash])>,
  • replacement in libpijul/src/vertex_buffer.rs at line 251
    [3.3007][3.3007:3128](),[3.293][3.223247:223257](),[3.3128][3.223247:223257](),[3.223247][3.223247:223257]()
    for side in sides {
    let h = side.to_base32();
    write!(self.w, " [{}]", h.split_at(8).0)?;
    }
    [3.3007]
    [3.3129]
    match sides {
    Some((changes, sides)) => {
    for side in sides {
    let h = side.to_base32();
    write!(
    self.w,
    " [{} {}]",
    h.split_at(8).0,
    change_message(changes, side)
    )?;
    }
    }
    None => (),
    };
  • replacement in libpijul/src/vertex_buffer.rs at line 269
    [3.223279][3.3164:3256]()
    fn begin_conflict(&mut self, id: usize, side: &[&Hash]) -> Result<(), std::io::Error> {
    [3.223279]
    [3.3256]
    fn begin_conflict<C: ChangeStore>(
    &mut self,
    id: usize,
    side: Option<(&C, &[&Hash])>,
    ) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/vertex_buffer.rs at line 276
    [3.223399][3.3317:3391]()
    fn end_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    [3.223399]
    [3.134]
    fn end_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/vertex_buffer.rs at line 278
    [3.166][3.3392:3449]()
    self.output_conflict_marker(END_MARKER, id, &[])
    [3.166]
    [3.214]
    self.output_conflict_marker::<C>(END_MARKER, id, None)
  • replacement in libpijul/src/vertex_buffer.rs at line 280
    [3.220][3.3450:3480]()
    fn begin_zombie_conflict(
    [3.220]
    [3.3480]
    fn begin_zombie_conflict<C: ChangeStore>(
  • replacement in libpijul/src/vertex_buffer.rs at line 283
    [3.3518][3.3518:3545]()
    add_del: &[&Hash],
    [3.3518]
    [3.3545]
    add_del: Option<(&C, &[&Hash])>,
  • replacement in libpijul/src/vertex_buffer.rs at line 292
    [3.370][3.3652:3733]()
    fn end_zombie_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    [3.370]
    [3.440]
    fn end_zombie_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/vertex_buffer.rs at line 294
    [3.472][3.3734:3791]()
    self.output_conflict_marker(END_MARKER, id, &[])
    [3.472]
    [3.223520]
    self.output_conflict_marker::<C>(END_MARKER, id, None)
  • replacement in libpijul/src/vertex_buffer.rs at line 296
    [3.223526][3.3792:3934]()
    fn begin_cyclic_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.output_conflict_marker(START_MARKER, id, &[])
    [3.223526]
    [3.223647]
    fn begin_cyclic_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
    self.output_conflict_marker::<C>(START_MARKER, id, None)
  • edit in libpijul/src/diff/vertex_buffer.rs at line 1
    [3.768903]
    [3.768959]
    use crate::changestore::ChangeStore;
  • edit in libpijul/src/diff/vertex_buffer.rs at line 4
    [3.769009]
    [21.85410]
    use crate::vertex_buffer::change_message;
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 157
    [3.32714][3.3935:4027]()
    fn begin_conflict(&mut self, id: usize, side: &[&Hash]) -> Result<(), std::io::Error> {
    [3.32714]
    [3.774201]
    fn begin_conflict<C: ChangeStore>(
    &mut self,
    id: usize,
    side: Option<(&C, &[&Hash])>,
    ) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 166
    [3.774324][3.4104:4187]()
    fn begin_cyclic_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    [3.774324]
    [3.774395]
    fn begin_cyclic_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 170
    [3.774541][3.4188:4262]()
    self.output_conflict_marker(vertex_buffer::START_MARKER, id, &[])
    [3.774541]
    [3.774606]
    self.output_conflict_marker::<C>(vertex_buffer::START_MARKER, id, None)
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 173
    [3.774613][3.4263:4293]()
    fn begin_zombie_conflict(
    [3.774613]
    [3.4293]
    fn begin_zombie_conflict<C: ChangeStore>(
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 176
    [3.4331][3.4331:4358]()
    add_del: &[&Hash],
    [3.4331]
    [3.4358]
    add_del: Option<(&C, &[&Hash])>,
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 182
    [3.32927][3.4476:4550]()
    fn end_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    [3.32927]
    [3.774928]
    fn end_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 191
    [3.775223][3.4551:4625]()
    self.output_conflict_marker(vertex_buffer::END_MARKER, id, &[])?;
    [3.775223]
    [3.775288]
    self.output_conflict_marker::<C>(vertex_buffer::END_MARKER, id, None)?;
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 198
    [3.775540][3.4626:4707]()
    fn end_cyclic_conflict(&mut self, id: usize) -> Result<(), std::io::Error> {
    [3.775540]
    [3.775609]
    fn end_cyclic_conflict<C: ChangeStore>(&mut self, id: usize) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 200
    [3.775648][3.4708:4740]()
    self.end_conflict(id)?;
    [3.775648]
    [3.775678]
    self.end_conflict::<C>(id)?;
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 205
    [3.33063][3.4741:4832]()
    fn conflict_next(&mut self, id: usize, side: &[&Hash]) -> Result<(), std::io::Error> {
    [3.33063]
    [3.775903]
    fn conflict_next<C: ChangeStore>(
    &mut self,
    id: usize,
    side: Option<(&C, &[&Hash])>,
    ) -> Result<(), std::io::Error> {
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 222
    [3.33129][3.4906:4937]()
    fn output_conflict_marker(
    [3.33129]
    [3.4937]
    fn output_conflict_marker<C: ChangeStore>(
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 226
    [3.4997][3.4997:5022]()
    sides: &[&Hash],
    [3.4997]
    [3.5022]
    sides: Option<(&C, &[&Hash])>,
  • replacement in libpijul/src/diff/vertex_buffer.rs at line 243
    [3.5318][3.5318:5458]()
    for side in sides {
    let h = side.to_base32();
    write!(self.contents_a, " [{}]", h.split_at(8).0)?;
    }
    [3.5318]
    [3.5458]
    match sides {
    Some((changes, sides)) => {
    for side in sides {
    let h = side.to_base32();
    write!(
    self.contents_a,
    " [{} {}]",
    h.split_at(8).0,
    change_message(changes, side)
    )?;
    }
    }
    None => (),
    };
  • replacement in libpijul/src/alive/output.rs at line 64
    [3.5956][3.5956:6022]()
    line_buf.begin_conflict(id, &[&ext.into()])?;
    [3.5956]
    [3.6022]
    line_buf.begin_conflict(id, Some((changes, &[&ext.into()])))?;
  • replacement in libpijul/src/alive/output.rs at line 67
    [3.6063][3.6063:6118]()
    line_buf.begin_conflict(id, &[])?;
    [3.6063]
    [3.6118]
    line_buf.begin_conflict::<P>(id, None)?;
  • replacement in libpijul/src/alive/output.rs at line 76
    [3.6225][3.6225:6280]()
    line_buf.end_zombie_conflict(id)?;
    [3.6225]
    [3.662]
    line_buf.end_zombie_conflict::<P>(id)?;
  • replacement in libpijul/src/alive/output.rs at line 83
    [3.6529][2.32:105]()
    line_buf.conflict_next(elt.id, &[&ext.into()])?;
    [3.6529]
    [3.6599]
    line_buf.conflict_next(elt.id, Some((changes, &[&ext.into()])))?;
  • replacement in libpijul/src/alive/output.rs at line 86
    [3.6648][2.106:168]()
    line_buf.conflict_next(elt.id, &[])?;
    [3.6648]
    [3.6707]
    line_buf.conflict_next::<P>(elt.id, None)?;
  • replacement in libpijul/src/alive/output.rs at line 125
    [3.7130][3.7130:7185]()
    line_buf.end_zombie_conflict(id)?;
    [3.7130]
    [3.901]
    line_buf.end_zombie_conflict::<P>(id)?;
  • replacement in libpijul/src/alive/output.rs at line 127
    [3.919][2.236:284]()
    line_buf.end_conflict(elt.id)?;
    [3.919]
    [3.991308]
    line_buf.end_conflict::<P>(elt.id)?;
  • replacement in libpijul/src/alive/output.rs at line 131
    [3.7281][3.7281:7332]()
    line_buf.end_zombie_conflict(id)?;
    [3.7281]
    [3.1031]
    line_buf.end_zombie_conflict::<P>(id)?;
  • replacement in libpijul/src/alive/output.rs at line 138
    [3.7374][3.7374:7417]()
    line_buf.end_zombie_conflict(id)?;
    [3.7374]
    [3.991416]
    line_buf.end_zombie_conflict::<P>(id)?;
  • replacement in libpijul/src/alive/output.rs at line 205
    [3.993137][3.7500:7542]()
    vbuf.begin_cyclic_conflict(*id)?;
    [3.993137]
    [3.7542]
    vbuf.begin_cyclic_conflict::<P>(*id)?;
  • replacement in libpijul/src/alive/output.rs at line 215
    [3.7718][3.7718:7785]()
    vbuf.begin_zombie_conflict(*id, &[&hash.into()])?;
    [3.7718]
    [3.7785]
    vbuf.begin_zombie_conflict(*id, Some((changes, &[&hash.into()])))?;
  • replacement in libpijul/src/alive/output.rs at line 219
    [3.7863][3.7863:7906]()
    vbuf.end_zombie_conflict(id)?;
    [3.7863]
    [3.993348]
    vbuf.end_zombie_conflict::<P>(id)?;
  • replacement in libpijul/src/alive/output.rs at line 246
    [3.994106][3.7907:7953]()
    vbuf.end_cyclic_conflict(id_cyclic)?;
    [3.994106]
    [3.994143]
    vbuf.end_cyclic_conflict::<P>(id_cyclic)?;