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)?)