unrecording zombie file markers

pmeunier
Jan 25, 2026, 6:13 PM
AYE7TBQFXG2STJLSO244P7HDVVBTAV5JIGQDTTYZNCFNVANTEWHAC

Dependencies

  • [2] 7FP2DFNX Optimisation: avoid re-checking the entire repo when recording after an unrecord
  • [3] QWIYNMI5 Formatting + big-endian Sanakirja
  • [4] MQ6ERQ43 Bug fixes when unrecording a patch that introduced zombie files
  • [*] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [*] 3CFU4DQN Fixing a bug in unrecord, where a patch creating an undeletion conflict would not be properly unrecorded

Change contents

  • edit in libpijul/src/unrecord/mod.rs at line 261
    [7.839]
    [2.4481]
    debug!("touched {:?}", touched_inodes);
  • edit in libpijul/src/unrecord/mod.rs at line 655
    [3.1860]
    [3.1860]
    debug!("collect_zombies_pseudo {:?} {:?} {:?}", v, alive, on_path);
  • edit in libpijul/src/unrecord/mod.rs at line 683
    [3.2774]
    [3.2774]
    ws.zombies_stack.push((v, false, true));
  • edit in libpijul/src/unrecord/mod.rs at line 688
    [3.2952][3.2952:2985]()
    let mut is_first = true;
  • edit in libpijul/src/unrecord/mod.rs at line 702
    [3.3544][3.3544:3690]()
    if is_first {
    is_first = false;
    ws.zombies_stack.push((v, false, true))
    }
  • edit in libpijul/src/tests/unrecord.rs at line 260
    [2.6808]
    [6.257815]
    crate::pristine::debug(
    &*txn.read(),
    &*channel.read(),
    std::fs::File::create("alice.dot").unwrap(),
    )?;