Fixing the stitching in cyclic conflict
Dependencies
- [2]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [3]
BD5PC25ADeleting conflict resolution vertices when the sides are deleted - [4]
6YMDOZIBRefactoring apply - [5]
CCLLB7OIUpgrading to Sanakirja 0.15 + version bump - [6]
I24UEJQLVarious post-fire fixes - [7]
FXEDPLRIResurrecting tests, and type cleanup (no need for Arc<RwLock<…>> anymore) - [8]
55SCQOOHFixing the tests - [9]
43SISRQ4Formatting - [10]
ZJWCPRMHFixing known patches in deleted contexts - [11]
MQ6ERQ43Bug fixes when unrecording a patch that introduced zombie files - [12]
H5DIAL52Mixed zombie/order conflicts: fixing the bottom vertex - [13]
HP7CKJIWFixing a bug in unrecord - [14]
RRCSHAYZFormatting - [15]
QWIYNMI5Formatting + big-endian Sanakirja - [16]
U2CGP7OPRecord a separate change for Hunk::AddRoot, to avoid #571 - [17]
V3HHWF4QCommit function in libpijul - [18]
OXZVZDQZSimplification of missing context repairs
Change contents
- edit in libpijul/src/tests/conflict.rs at line 2538
{let txn = txn.read();let graph = channel_bob.read();let mut f = std::fs::File::create("bob0").unwrap();crate::pristine::debug(&*txn, &txn.graph(&*graph), &mut f).unwrap();} - edit in libpijul/src/tests/conflict.rs at line 2546
{let txn = txn.read();let graph = channel_bob.read();let mut f = std::fs::File::create("bob1").unwrap();crate::pristine::debug(&*txn, &txn.graph(&*graph), &mut f).unwrap();} - replacement in libpijul/src/lib.rs at line 84
impl MutTxnTExt for pristine::sanakirja::MutTxn<()> {}impl TxnTExt for pristine::sanakirja::MutTxn<()> {}impl TxnTExt for pristine::sanakirja::Txn {}impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>+ ::sanakirja::RootPageMut+ ::sanakirja::Commit+ ::sanakirja::AllocPage<Error = ::sanakirja::Error>,> MutTxnTExt for pristine::sanakirja::GenericTxn<T>{}impl<T: ::sanakirja::LoadPage<Error = ::sanakirja::Error> + ::sanakirja::RootPage> TxnTExtfor pristine::sanakirja::GenericTxn<T>{} - replacement in libpijul/src/diff/delete.rs at line 133
)?)?; - replacement in libpijul/src/apply.rs at line 602
debug!("descendant {:#?}", r);put_graph_with_rev(txn,channel,EdgeFlags::PSEUDO,elt.last_alive,*r,ChangeId::ROOT,)?;debug!("put_pseudo, descendant {:?} {:?}", elt.last_alive, r);// If we aren't in a direct cycle, reconnect.if elt.last_alive != *r {put_graph_with_rev(txn,channel,EdgeFlags::PSEUDO,elt.last_alive,*r,ChangeId::ROOT,)?;}}if !elt.is_alive() {continue; - replacement in libpijul/src/apply.rs at line 626
// We need to reconnect, and we can do it now// since we won't have a chance to visit that// edge (because non-PARENT edge we are// inserting now starts from a vertex that is// on the path, which means we've already// pushed all its children onto the stack.).put_graph_with_rev(txn,channel,EdgeFlags::PSEUDO,v.vertex,elt.vertex,ChangeId::ROOT,)?;if v.vertex != elt.vertex {// We need to reconnect, and we can do it now// since we won't have a chance to visit that// edge (because non-PARENT edge we are// inserting now starts from a vertex that is// on the path, which means we've already// pushed all its children onto the stack.).debug!("alive, put_pseudo {:?} {:?}", v.vertex, elt.vertex);put_graph_with_rev(txn,channel,EdgeFlags::PSEUDO,v.vertex,elt.vertex,ChangeId::ROOT,)?;} - replacement in libpijul/src/apply.rs at line 712
put_graph_with_rev(txn,channel,EdgeFlags::PSEUDO,debug!("put_pseudo, alive 2, {:?} {:?}", - replacement in libpijul/src/apply.rs at line 715
stack[len - 1].vertex,ChangeId::ROOT,)?;stack[len - 1].vertex);debug!("{:?}", stack);let edge = Edge {dest: stack[len - 1].vertex.start_pos(),flag: EdgeFlags::empty(),introduced_by: ChangeId::ROOT,};match txn.get_graph(channel, &v.last_alive, Some(&edge.into()))? {Some(e) if e.dest() == edge.dest && e.flag() == EdgeFlags::BLOCK => {}_ => {put_graph_with_rev(txn,channel,EdgeFlags::PSEUDO,v.last_alive,stack[len - 1].vertex,ChangeId::ROOT,)?;}} - replacement in libpijul/src/apply.rs at line 776
{if log_enabled!(log::Level::Debug) { - edit in libpijul/src/apply.rs at line 1125
debug!("put_pseudo {:?} {:?}", next, current); - replacement in libpijul/src/apply.rs at line 1250
.sample_iter(rand::distributions::Standard).sample_iter(rand::distr::StandardUniform) - edit in libpijul/src/apply/vertex.rs at line 37
// Collect the vertices in the up context (we only have their// end positions at this point), also collecting the deleted// ones (they're part of a conflict if they're unknown to the// patch we're applying). - edit in libpijul/src/apply/vertex.rs at line 50
// Not the same here, we're only collecting down contexts. - edit in libpijul/src/apply/vertex.rs at line 61
// Mark the delete/insert conflict, if any. - edit in libpijul/src/apply/vertex.rs at line 66
// And put the edge into the graph.