Deleting conflict resolution vertices when the sides are deleted
[?]
Dec 6, 2020, 8:35 PM
BD5PC25AB5MKVIYDFSDGRZ4YGX4PKW4SMZ3YAYAPNA5HLDVJUR3QCDependencies
- [2]
KQTD46KVUnrecord: restore files *after* having unapplied the *entire* change - [3]
HMMMKONLFixing alive vertices - [4]
I52XSRUHMassive cleanup, and simplification - [5]
5BRU2RRWCleanup (debugging a crash related to trees/inodes) - [6]
L5PHFTIEMinor simplification - [7]
WZVCLZKYaddress clippy lints - [8]
UBCBQ5FGRemoving pijul/src/commands/checkout.rs (unused file), as well as litorg comments - [9]
YACC5QR6Don't delete non-block edges unless they're at the top of a block - [10]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [11]
VO5OQW4WRemoving anyhow in libpijul - [12]
BXD3IQYNFixing --features git - [13]
KDF6FJRVbigger clippy refactors - [14]
74HX2XZDCleanup and debugging - [15]
ZXTHL45Oaddress clippy lints
Change contents
- replacement in pijul/src/commands/debug.rs at line 6
use libpijul::TxnT;use libpijul::{TxnT, TxnTExt}; - replacement in pijul/src/commands/debug.rs at line 34
{if let Some(root) = self.root {let (pos, _) = txn.follow_oldest_path(&repo.changes, &channel, &root).unwrap();libpijul::pristine::debug_root(&txn,&channel.borrow(),pos.inode_vertex(),std::io::stdout(),true,)?;} else { - edit in libpijul/src/unrecord/mod.rs at line 162
let mut f = std::fs::File::create("debug_unrecord").unwrap();crate::pristine::debug(txn, &channel, &mut f).unwrap(); - replacement in libpijul/src/pristine/mod.rs at line 710
pub(crate) fn debug_root<W: Write, T: TxnT>(#[cfg(debug_assertions)]pub fn debug_root<W: Write, T: TxnT>( - edit in libpijul/src/pristine/mod.rs at line 716
down: bool, - replacement in libpijul/src/pristine/mod.rs at line 727
if e.flag.contains(EdgeFlags::PARENT) {if e.flag.contains(EdgeFlags::PARENT) ^ down { - replacement in libpijul/src/pristine/mod.rs at line 729
let v = find_block_end(txn, &channel, e.dest).unwrap();let v = if e.flag.contains(EdgeFlags::PARENT) {find_block_end(txn, &channel, e.dest).unwrap()} else {find_block(txn, &channel, e.dest).unwrap()}; - replacement in libpijul/src/pristine/mod.rs at line 1466
debug_root(txn, &channel, file.unwrap(), &mut f)?;debug_root(txn, &channel, file.unwrap(), &mut f, false)?; - replacement in libpijul/src/output/mod.rs at line 156
debug_root(txn, channel, child.dest.inode_vertex(), &mut f).unwrap();debug_root(txn, channel, child.dest.inode_vertex(), &mut f, false).unwrap(); - replacement in libpijul/src/diff/delete.rs at line 103[4.809020]→[4.809020:809117](∅→∅),[4.809117]→[4.593:876](∅→∅),[4.876]→[4.809445:809513](∅→∅),[4.809445]→[4.809445:809513](∅→∅)
match diff.marker.get(&diff.pos_a[i].pos) {Some(ConflictMarker::Begin) => {if let ConflictType::Zombie =diff.conflict_ends[diff.pos_a[i].conflict].conflict_type{solved_conflict_end =solved_conflict_end.max(diff.conflict_ends[diff.pos_a[i].conflict].end_pos)}}None => delete_parents(debug!("pos = {:?} {:?}", diff.pos_a[i].pos, diff.pos_a[i].vertex);let marker = diff.marker.get(&diff.pos_a[i].pos);if marker.is_none() || (!diff.pos_a[i].vertex.is_root() && diff.pos_a[i].vertex.is_empty()){debug!("{:?}", diff.vertex(i, pos, end_pos));delete_parents( - replacement in libpijul/src/diff/delete.rs at line 114
),_ => {})} else if let Some(ConflictMarker::Begin) = marker {debug!("conflict type = {:#?}",diff.conflict_ends[diff.pos_a[i].conflict].conflict_type);if let ConflictType::Zombie = diff.conflict_ends[diff.pos_a[i].conflict].conflict_type {solved_conflict_end =solved_conflict_end.max(diff.conflict_ends[diff.pos_a[i].conflict].end_pos)}} else {debug!("conflict: {:?}", marker); - replacement in libpijul/src/diff/delete.rs at line 168
if graph_key.start != del_key.start && !v.flag.contains(EdgeFlags::BLOCK) {if graph_key.start != del_key.start&& !graph_key.is_empty()&& !v.flag.contains(EdgeFlags::BLOCK){ - edit in libpijul/src/diff/delete.rs at line 272
debug!("resurrect_zombies {:?} {:?} {:?} {:?}",r, i, end_pos, solved_conflict_end); - edit in libpijul/src/diff/delete.rs at line 325
debug!("resurrect zombie {:?} {:?}", v, target); - edit in libpijul/src/alive/retrieve.rs at line 1
// org id hGK6MGS40qzDFMBQyv5XVltMB8aIcok+Pgym9VgR9Vk= - edit in libpijul/src/alive/retrieve.rs at line 7
// org id sYJLuP12Bb9ojQy2BgMV3s1jy9cGxExEdwA79BNti8w= - edit in libpijul/src/alive/retrieve.rs at line 13
// org id 5vWbyONVh9JXfLbAXyWtgOPI0Uw7ePLizs5Ktr69a7A= - edit in libpijul/src/alive/retrieve.rs at line 27
// org id +NO0a8x0MX1UOumulz5JeM8HzIIpUzB+FDngTJ+n9I8= - edit in libpijul/src/alive/retrieve.rs at line 58
// org id hsj9MpTqN7i3gJbLw17mqAbo+0+lz2RNkm24v+T+WvQ= - replacement in libpijul/src/alive/retrieve.rs at line 64
// org id xfKIMD6U0jHcxTiNzXKvDewGhKlvjnNe3nmaoh6nnz4= - replacement in libpijul/src/alive/retrieve.rs at line 71[4.73293]→[4.2084:2120](∅→∅),[4.2120]→[4.73332:73363](∅→∅),[4.73332]→[4.73332:73363](∅→∅),[4.73363]→[4.987142:987158](∅→∅),[4.987142]→[4.987142:987158](∅→∅),[4.987158]→[4.73364:73482](∅→∅),[4.73482]→[4.2121:2135](∅→∅)
crate::pristine::iter_adjacent(txn,&channel,vertex,EdgeFlags::PARENT | EdgeFlags::BLOCK,EdgeFlags::PARENT | EdgeFlags::BLOCK | EdgeFlags::FOLDER,).next()?;if !is_alive(txn, &channel, vertex) {return None;} - replacement in libpijul/src/alive/retrieve.rs at line 98
// org id jpSLF26wQdmz0kBfuXYavQ2T6SBQYdE5u9SfkPOypeg=