Fixing conflict editing

pmeunier
Dec 28, 2025, 8:22 PM
4VNRGSPU57GYEUCB3CZHNMBCWSGJHQHO6HIWY6QLKK6O4HVP4CVAC

Dependencies

  • [2] YN63NUZO Sanakirja 1.0
  • [3] ZXTHL45O address clippy lints
  • [4] FBHUMBZT Fixing an off-by-one error in conflict resolutions, when one side of a conflict contains a "last line in file" without a \n
  • [5] IYJZVLET Cleaning up the literate programming bits
  • [6] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [7] ADZQB6NY Fixing a bug that could cause some conflict resolution markers to be ignored when diffing

Change contents

  • edit in libpijul/src/diff/replace.rs at line 142
    [3.783747]
    [3.783788]
    // Move up until we find a "suitable" line (possibly jumping over
    // conflict markers, which aren't "suitable").
  • replacement in libpijul/src/diff/replace.rs at line 153
    [3.784217][3.784217:784302]()
    return vec![diff.pos_a[up_context_idx].vertex.end_pos().to_option()]
    [3.784217]
    [3.784302]
    return vec![diff.pos_a[up_context_idx].vertex.end_pos().to_option()];
  • edit in libpijul/src/diff/replace.rs at line 206
    [3.785842]
    [3.785897]
  • edit in libpijul/src/diff/replace.rs at line 251
    [3.787585]
    [3.787640]
  • replacement in libpijul/src/diff/replace.rs at line 262
    [3.787868][3.787868:787893]()
    contents_len: usize,
    [3.787868]
    [3.787893]
    current_contents_len: usize,
  • edit in libpijul/src/diff/replace.rs at line 287
    [3.788890]
    [3.788890]
    current_contents_len,
  • replacement in libpijul/src/diff/replace.rs at line 289
    [3.788928][3.788928:788946]()
    )
    [3.788928]
    [3.788946]
    );
  • replacement in libpijul/src/diff/replace.rs at line 301
    [3.789512][2.135941:136018]()
    e.push(ChangePosition((contents_len + b_len_bytes).into()));
    [3.789512]
    [3.789589]
    e.push(ChangePosition((current_contents_len + b_len_bytes).into()));
  • replacement in libpijul/src/diff/replace.rs at line 319
    [3.790431][3.790431:790527]()
    return vec![diff.position(down_context_idx, pos_bytes).to_option()]
    [3.790431]
    [3.790527]
    return vec![diff.position(down_context_idx, pos_bytes).to_option()];
  • edit in libpijul/src/diff/replace.rs at line 332
    [3.790679]
    [3.790734]
  • edit in libpijul/src/diff/replace.rs at line 341
    [3.790924]
    [3.790924]
    current_contents_len: usize,
  • replacement in libpijul/src/diff/replace.rs at line 347
    [3.791113][3.791113:791147](),[3.791147][2.136019:136080]()
    conflict_contexts
    .up
    .insert(conflict, ChangePosition(len_bytes.into()));
    [3.791113]
    [3.791208]
    debug!("len_bytes {:?}", len_bytes);
    conflict_contexts.up.insert(
    conflict,
    ChangePosition((current_contents_len + len_bytes).into()),
    );