Fixing a panic when outputting zombie folders
Dependencies
- [2]
I24UEJQLVarious post-fire fixes - [3]
YN63NUZOSanakirja 1.0 - [4]
I52XSRUHMassive cleanup, and simplification - [5]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [6]
CCLLB7OIUpgrading to Sanakirja 0.15 + version bump - [*]
VO5OQW4WRemoving anyhow in libpijul
Change contents
- edit in libpijul/src/output/output.rs at line 517[8.22806][2.82193]
fn is_alive_or_zombie<T: GraphTxnT>(txn: &T,channel: &T::Graph,a: &Vertex<ChangeId>,) -> Result<bool, TxnErr<T::GraphError>> {if a.is_root() {return Ok(true);}for e in iter_adjacent(txn,channel,*a,EdgeFlags::PARENT,EdgeFlags::all() - EdgeFlags::DELETED,)? {let e = e?;let zf = EdgeFlags::pseudof();if (e.flag() & zf != EdgeFlags::PSEUDO)&& (e.flag().contains(EdgeFlags::BLOCK) || a.is_empty()){return Ok(true);}}Ok(false)} - replacement in libpijul/src/output/output.rs at line 566[3.684650]→[3.684650:684700](∅→∅),[3.684700]→[3.121409:121484](∅→∅),[3.84789]→[3.684773:684832](∅→∅),[3.121484]→[3.684773:684832](∅→∅),[3.684773]→[3.684773:684832](∅→∅),[3.684832]→[3.121485:121565](∅→∅),[3.56007]→[3.684909:685008](∅→∅),[3.84869]→[3.684909:685008](∅→∅),[3.121565]→[3.684909:685008](∅→∅),[3.684909]→[3.684909:685008](∅→∅)
let is_dead = parent_is_dead || {if let Some(vertex) = txn.get_inodes(&inode_, None)? {vertex.change != pending_change_id&& !is_alive(txn, channel, &vertex.inode_vertex())?} else {true}};let is_dead = parent_is_dead|| (!id.basename.is_empty() && {if let Some(vertex) = txn.get_inodes(&inode_, None)? {vertex.change != pending_change_id&& !is_alive_or_zombie(txn, channel, &vertex.inode_vertex())?} else {true}});