GUL4M5FIE7JYXJHR7MCTQS3543HIQXGPLBWZKASBAWWEA4SZ75CAC F6V27C3M7GZHBHXMGAZMYO5XGWDYYNNIF2HLDE2VPNHTEVDSYGVQC NS36CJCO6E2FS65JRHHMOK4GTL7CLNOOLQZZAAAIZI2CQYNPAYRQC HWH4WWN3XZ4GWP225GVTW4IYZIEFMQLKZZOMMEGZVSRGWYUE6MMAC AAXP2534BWX2ZUDZZHUMLYDBMGFGUH32CNRA3KOLER3JKOIJUZLAC PEUQPKDHN6ITBAQT2H2GPCM7BY3DAAF4ABSAKQYJW2UEYYGXU4MAC 3H6Q5LDSFBPGDMEMR6A5LRNHQF3TIZKSLIBXUTGRIBZSJP65JCTAC K7JPP64SNKZNMB6XJAYYHDC2464I3BQDLVA3IX4YCQZ4P5TXZXRAC 2RXOCWUWOGHEKHT5W73LAHJSOZVRTOGS7BWLSIGEEEBJGMCZBXQAC SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC I24UEJQLCH2SOXA4UHIYWTRDCHSOPU7AFTRUOTX7HZIAV4AZKYEQC QL6K2ZM35B3NIXEMMCJWUSFXOBQHAGXRDMO7ID5DCKTJH4QJVY7QC 3MHUNYERBYLR5FOB7YJZINOFKXSXMLGBF5F6UR2MKNYYODIJIFGQC YDTN6BGI5TFRJFM3N3Y2J463GKFHU5L3DPBQXBDIQJDWXU5ELKMQC I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC DJYHARZ7CSRMX6ZFM6P52SM2EC57VTSHWAIMFSD7Q3EL7UYZGLXQC 5SLOJYHGPMZVCOE3IS7ICNMJJYX3RBT6CDG5MAV6T4CJIOW7YZ6QC A3DMBJJAPLS6ASSZ7JVVVULRQNZCF2WKYTRUD7EY7PKVYABSATFAC L4JXJHWXYNCL4QGJXNKKTOKKTAXKKXBJUUY7HFZGEUZ5A2V5H34QC ZHABNS3S6FSINO74FOI5KHYXYDTBPO4FQTTYTUS7NNKEVVNLYC4AC GBLM3JLRCNEZLICNLV6M26YCZ4EYDG2F5BJOBH4FIBOM4W473LYAC BXD3IQYNMKMI5BTANCF6NZHZP4CKPWADGJMBT2R3WTMKVKONT5QAC AXVPNZ2NVKYRCTKYI77H72CALZBRTHY3OK4CMWGMTSU2NPMOS42QC IIV3EL2XYI2X7HZWKXEXQFAE3R3KC2Q7SGOT3Q332HSENMYVF32QC B3QWIGDERNMB3M6P5WTWP5CN2DB3KCS7MVTEPC2XVJ237ZXVQGMAC OWCCRVO5LMF3AJ6CU76UOT6HS2VNGI6O3LGTTYQBKZLPCCRNETXQC CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC Change,HashMap<usize, libpijul::InodeUpdate>,Option<libpijul::Hash>,std::time::SystemTime,), Arc<RwLock<T>>>,
>,
use anyhow::bail;use canonical_path::CanonicalPathBuf;use clap::{ArgSettings, Clap};use libpijul::pristine::*;use libpijul::*;use log::{debug, error, info, trace};
fn record_apply<T: TxnT + TxnTExt + MutTxnTExt + Send + Sync + 'static, C: libpijul::changestore::ChangeStore + Clone + Send + 'static>(
fn record_apply<T: TxnT + TxnTExt + MutTxnTExt + Send + Sync + 'static,C: libpijul::changestore::ChangeStore + Clone + Send + 'static,>(
// self.counter += 1;// debug!("put_graph {:?} {:?}, counter = {:?}", k, e, self.counter);/*if self.counter >= 12965 {let mut x = None;let mut cursor = btree::cursor::Cursor::new(&self.txn, graph)?;let mut panic = None;while let Some((k, v)) = cursor.next(&self.txn)? {if let Some((ref k_, ref v_)) = x {if k_ > k || (k_== k && v_ > v) {panic = Some((*k, *v));break}}x = Some((*k, *v))}self.debug(graph, ".put");if panic.is_some() {panic!("{:?}", x);}}*/
// self.counter += 1;// debug!("del_graph {:?} {:?}, counter = {:?}", k, e, self.counter);/*if self.counter >= 12965 {let mut x = None;let mut cursor = btree::cursor::Cursor::new(&self.txn, graph)?;let mut panic = None;while let Some((k, v)) = cursor.next(&self.txn)? {if let Some((ref k_, ref v_)) = x {if k_ > k || (k_== k && v_ > v) {panic = Some((*k, *v));break}}x = Some((*k, *v))}self.debug(graph, ".del");if panic.is_some() {panic!("{:?}", x);}}let change = ChangeId::from_base32(b"MM6XEY5S32WRA").unwrap();let mm6v = Vertex {change,start: ChangePosition(L64(1478218)),end: ChangePosition(L64(1478229)),};let mm6e = (Edge {flag: EdgeFlags::BLOCK | EdgeFlags::FOLDER | EdgeFlags::PARENT,dest: Position {change,pos: ChangePosition(L64(1466149)),},introduced_by: change,}).into();let has_mm6 = if let Some((v, e)) = btree::get(&self.txn, graph, &mm6v, Some(&mm6e)).unwrap() {v == &mm6v && e == &mm6e} else {false};*/let result = Ok(btree::del(&mut self.txn, graph, k, e)?);/*if has_mm6 && (k != &mm6v || e != Some(&mm6e)) {if let Some((v, e)) = btree::get(&self.txn, graph, &mm6v, Some(&mm6e)).unwrap() {assert_eq!(v, &mm6v);assert_eq!(e, &mm6e)} else {panic!("Not found")}}*/result
Ok(btree::del(&mut self.txn, graph, k, e)?)