3QXUJMZDPH2EDJY6UXIRA5ZQK3GRS2R422S7CKN56I36O4POAQXQC
7GQSGIV5ZRNFT4TRZCG6AW54BZTPSSS75O4HQADOVGMYKO7P6GJQC
YXAVFTPP2PQAYMKGQH7QNKFVGKDI2UHVWB7SIDA4QEYSBP75ZGUQC
C4MJ7D7QCOFGIHQSDV3UC76DTSE5M7JSLGN5MROMSVKFVQRFSP5QC
SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC
ZDK3GNDBWXJ2OXFDYB72ZCEBGLBF4MKE5K3PVHDZATHJ7HJIDPRQC
RMDMAYRXYBU5OQXV5HSF6LFD4NBMKRNH5EPIVW3K5HAV6D56IG6QC
HBUMCAFVS4W5FHWNZR7ITJFEEUCVZ4Q2U4KGWYN7XZGDZ75JMFTQC
LPM4PBYJFIFZXN3JNEZOKEQ74UXUMURIFY5U4R2CFC6N4XINHL4AC
G55Y75FUL4LWA346HQCZ5EVA5G54EDTZAW7MPVTO44BP6D5UMURAC
CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC
GA3P7FOMATKDOGCZDYWLZJHAUNOWMRIP3BXTYFEH7PNWTTYYVLIAC
fn conflict_next(&mut self, id_: usize, side: &[&Hash]) -> Result<(), std::io::Error> {
for conflict in self.conflicts.iter_mut().rev() {
match conflict {
crate::output::Conflict::Order { id, changes, .. } if *id == id_ => {
changes.extend(side.into_iter().cloned())
}
crate::output::Conflict::Zombie { id, changes, .. } if *id == id_ => {
changes.extend(side.into_iter().cloned())
}
crate::output::Conflict::Cyclic { id, changes, .. } if *id == id_ => {
changes.extend(side.into_iter().cloned())
}
_ => break,
}
}
self.output_conflict_marker(SEPARATOR, id_, side)
}
}
impl Conflict {
pub fn changes(&self) -> &[Hash] {
match self {
Conflict::Name { ref changes, .. } => changes,
Conflict::ZombieFile { ref changes, .. } => changes,
Conflict::MultipleNames { ref changes, .. } => changes,
Conflict::Zombie { ref changes, .. } => changes,
Conflict::Cyclic { ref changes, .. } => changes,
Conflict::Order { ref changes, .. } => changes,
}
}
pub fn inodes(&self) -> &[Position<ChangeId>] {
match self {
Conflict::Name { ref inodes, .. } => inodes,
Conflict::ZombieFile { ref inode, .. } => inode,
Conflict::MultipleNames { ref pos, .. } => pos,
Conflict::Zombie {
ref inode_vertex, ..
} => inode_vertex,
Conflict::Cyclic {
ref inode_vertex, ..
} => inode_vertex,
Conflict::Order {
ref inode_vertex, ..
} => inode_vertex,
}
}
Ok(true)
let mut id = Vec::new();
let f = EdgeFlags::FOLDER | EdgeFlags::PARENT;
for e in iter_adjacent(txn, channel, pos.inode_vertex(), f, EdgeFlags::all())? {
let e = e?;
if e.flag().contains(f) {
id.push(txn.get_external(&e.introduced_by())?.unwrap().into())
}
}
Ok(Some(id))
let ext = txn.get_external(&graph[vid].vertex.change)?.unwrap();
line_buf.begin_conflict(id, &[&ext.into()])?;
let ext = txn.get_external(&graph[vid].vertex.change)?.unwrap().into();
std::mem::drop(channel);
std::mem::drop(txn);
line_buf.begin_conflict(id, &[&ext])?;
let ext = txn.get_external(&graph[vid].vertex.change)?.unwrap();
line_buf.conflict_next(elt.id, &[&ext.into()])?;
let ext = txn.get_external(&graph[vid].vertex.change)?.unwrap().into();
std::mem::drop(txn);
line_buf.conflict_next(elt.id, &[&ext])?;