When repairing down contexts, do not follow deleted edges if there is an block+alive outgoing edge

pmeunier
May 12, 2022, 8:08 PM
L7S3MNQ4GHK7AHQETWWQJ2TXEBQKDYRRAROI3WVWT2IK5DK2SKXAC

Dependencies

  • [2] RSFUX6ML Correct find_alive cache system
  • [3] FABI77LL Cleaning up the cache in missing_context and find_alive
  • [4] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [*] YN63NUZO Sanakirja 1.0
  • [*] AD6M434O find_alive performance (matters a lot for unrecord)

Change contents

  • edit in libpijul/src/find_alive.rs at line 56
    [3.764231]
    [6.134368]
    let mut has_alive_blocks = false;
  • edit in libpijul/src/find_alive.rs at line 87
    [7.456]
    [3.764978]
    }
    } else if v.flag().contains(EdgeFlags::DELETED) {
    if !has_alive_blocks {
    stack.push((*v, None))
  • edit in libpijul/src/find_alive.rs at line 92
    [3.764996]
    [3.448]
    } else if v.flag().contains(EdgeFlags::BLOCK) {
    has_alive_blocks = true;
    stack.push((*v, None));
  • replacement in libpijul/src/find_alive.rs at line 96
    [3.469][2.4534:4573]()
    stack.push((*v, None))
    [3.469]
    [3.764996]
    stack.push((*v, None));