Remote IDs were wrong (the bound check was incorrect), and patches to pull weren't checked against the local channel
7HOBLRD43W2R5OVOYZVDO5LYPBZS7OSLDS7FH4NVNMBL3AZGMLSQC
6WFOU7UXCYM5UWA5WVZ72XFRJWJA5GWCIAC5PI5NOEFHNFD3VKNAC
27RZYCM3XP72CW7FYGE373YAFD6EEZOZ4YAHEKV6JE5L6Z5N3JNAC
7SQ7COLT73S6WT7H4ILJOQYRLYJVVYK4FWWCQ7TP6BVL5XMXMX3QC
A3RM526Y7LUXNYW4TL56YKQ5GVOK2R5D7JJVTSQ6TT5MEXIR6YAAC
L2VH4BYK3IULLGBHXMZJWKRKDQY43QEMQRTXFJCNRDE7PODLXWTAC
SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC
YN63NUZO4LVJ7XPMURDULTXBVJKW5MVCTZ24R7Z52QMHO3HPDUVQC
IVLLXQ5ZWZDKHO4TNQG3TPXN34H6Y2WXPAGSO4PWCYNSKUZWOEJQC
5HF7C67M4DZMYTCIG32XEQQ662AHQMIHTHUK7TAVSO52XLMFBZPAC
M5FK3ABTKBDG6HHW32G7UKRJEJQKD2U7BPXNZ3HVHBKULWVV6CTQC
EUZFFJSOWV4PXDFFPDAFBHFUUMOFEU6ST7JH57YYRRR2SEOXLN6QC
I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC
BE7GUCI2N6TX3P2HRMFSH7XLJKILDPOKOXKA7HWOABBFNKCKMZLAC
Q45QHPO4HDTEZF2W4UDZSYYQ46BPEIWSW4GJILZR5HTJNLKXJABQC
let to_download: Result<Vec<libpijul::Hash>, anyhow::Error> = specific_changes
.iter()
.map(|h| Ok(txn.hash_from_prefix(h)?.0))
.collect();
let mut to_download = Vec::new();
for h in specific_changes {
let h = txn.hash_from_prefix(h)?.0;
if txn.get_revchanges(current_channel, &h)?.is_none() {
to_download.push(h)
}
}
let original_: HashSet<_> = original.iter().collect();
let mut now_ = HashSet::with_capacity(original.len());
let mut result = Vec::with_capacity(original.len());
for &h in now {
now_.insert(h);
result.push(h);
}
let mut stack = now.to_vec();
stack.reverse();
while let Some(n) = stack.pop() {
// check that all of `now`'s deps are in now or not in original
for d in c.get_dependencies(&n)? {
let mut now_ = HashSet::new();
let mut result = Vec::new();
for &h in now.iter() {
for d in c.get_dependencies(&h)? {