Fixing a bug in context repairs

pmeunier
Jun 16, 2023, 3:58 PM
XNY6VDZSCNHSAS53HRVBT5AO7HBMAWPOQX3ORCYPWVWRKA4EXMFQC

Dependencies

  • [2] RSFUX6ML Correct find_alive cache system
  • [3] YN63NUZO Sanakirja 1.0
  • [4] JACZYXK4 Fixing a bug in unrecord
  • [5] 6YMDOZIB Refactoring apply
  • [*] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [*] X7OHUPL5 Fixing a bug in unrecord, and fixing the tests
  • [*] FABI77LL Cleaning up the cache in missing_context and find_alive

Change contents

  • edit in libpijul/src/missing_context.rs at line 186
    [3.123202]
    [8.1085]
    debug!(
    "repair_context_nondeleted source {:?} target {:?} e {:?}",
    source, target, e
    );
  • replacement in libpijul/src/missing_context.rs at line 193
    [3.525][3.525:607]()
    repair_missing_down_context(txn, channel, ws, inode, target, &[target])?;
    [3.525]
    [3.123203]
    let mut missing_down = std::mem::replace(&mut ws.missing_down, Vec::new());
    missing_down.clear();
    for e in iter_adjacent(
    txn,
    channel,
    target,
    EdgeFlags::DELETED,
    EdgeFlags::all() - EdgeFlags::PARENT,
    )? {
    let e = e?;
    ws.missing_down.push(*txn.find_block(&channel, e.dest())?)
    }
    repair_missing_down_context(txn, channel, ws, inode, target, &missing_down)?;
    ws.missing_down = missing_down;
  • edit in libpijul/src/missing_context.rs at line 397
    [2.1935]
    [7.707180]
    missing_down: Vec<Vertex<ChangeId>>,
  • edit in libpijul/src/missing_context.rs at line 445
    [9.346]
    [7.707711]
    self.missing_down.clear();
  • edit in libpijul/src/missing_context.rs at line 457
    [9.447]
    [7.708016]
    assert!(self.missing_down.is_empty());