E3DD265TSU5HFAAUYOIYFK5D3GYSPIJSWDVSQX5Q226WPCH43EFQC
PRH6LZFXNLAEM3FYRVETYY3AEHTB6JYUQNKZPMBIILRANIBLWUXQC
Y2Y4OOIECVVLL5KIUVHIWJTGPADACCZZHUFGHTLSWHXS5UJ5FD4QC
PIQCNEEBNHZDYOU2O7667XBB6D3V2MUALRRVJX6VO5BGYR7LTYRQC
I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC
SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC
L4JXJHWXYNCL4QGJXNKKTOKKTAXKKXBJUUY7HFZGEUZ5A2V5H34QC
AEPEFS7O3YT7CRRFYQVJWUXUUSRGJ6K6XZQVK62B6N74UXOIFWYAC
4H2XTVJ2BNXDNHQ3RQTMOG3I4NRGZT7JDLC2GRINS56TIYTYTO4QC
EUZFFJSOWV4PXDFFPDAFBHFUUMOFEU6ST7JH57YYRRR2SEOXLN6QC
5OGOE4VWS5AIG4U2UYLLIGA3HY6UB7SNQOSESHNXBLET3VQXFBZAC
CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC
let cur = txn
.current_channel()
.unwrap_or(libpijul::DEFAULT_CHANNEL)
.to_string();
let channel_name = if let Some(ref c) = self.channel {
c
let mut fork = if let Some(ref channel_name) = self.channel {
if let Some(channel) = txn.load_channel(channel_name)? {
txn.fork(&channel, &self.to)?
} else {
anyhow::bail!("Channel not found: {:?}", channel_name);
}
if let Some(channel) = txn.load_channel(&channel_name)? {
txn.fork(&channel, &self.to)?;
} else {
anyhow::bail!("Channel not found: {:?}", channel_name);
if let Some(ref state) = self.state {
if let Some(state) = libpijul::Merkle::from_base32(state.as_bytes()) {
let ch = fork.write();
if let Some(n) = txn.channel_has_state(&ch.states, &state.into())? {
let n: u64 = n.into();
let mut v = Vec::new();
for l in txn.reverse_log(&ch, None)? {
let (n_, h) = l?;
if n_ > n {
v.push(h.0.into())
} else {
break;
}
}
std::mem::drop(ch);
for h in v {
txn.unrecord(&repo.changes, &mut fork, &h, 0)?;
}
}
}