replacement in pijul-core/src/text_encoding.rs at line 1
[19.22]→[14.35:85](∅→∅),
[14.35]→[14.35:85](∅→∅) − use serde::{de::Visitor, Deserialize, Serialize};
+ use serde::{Deserialize, Serialize, de::Visitor};
replacement in pijul-core/src/tests/unrecord.rs at line 425
[10.21138]→[20.7343:7448](∅→∅) − assert!(crate::fs::iter_working_copy(&*txn.read(), Inode::ROOT)
− .next()
− .is_none());
+ assert!(
+ crate::fs::iter_working_copy(&*txn.read(), Inode::ROOT)
+ .next()
+ .is_none()
+ );
replacement in pijul-core/src/tests/file_conflicts.rs at line 706
[2.327875]→[2.327875:327993](∅→∅) − assert!(["a", "a/b", "a/b/c", "a/b/c/file2"]
− .iter()
− .all(|n| files_bob.iter().any(|m| m == n)));
+ assert!(
+ ["a", "a/b", "a/b/c", "a/b/c/file2"]
+ .iter()
+ .all(|n| files_bob.iter().any(|m| m == n))
+ );
replacement in pijul-core/src/tests/file_conflicts.rs at line 833
[2.331968]→[2.331968:332085](∅→∅) − assert!(["a", "a/b", "a/b/d", "a/b/d/file"]
− .iter()
− .all(|n| files_bob.iter().any(|m| m == n)));
+ assert!(
+ ["a", "a/b", "a/b/d", "a/b/d/file"]
+ .iter()
+ .all(|n| files_bob.iter().any(|m| m == n))
+ );
edit in pijul-core/src/tests/diff.rs at line 4
− use rand::distr::Alphanumeric;
resurrect zombie in pijul-core/src/tests/diff.rs at line 4
[21.205]→[52.620:651](∅→∅),
[21.205]→[52.620:651](∅→∅) + use rand::distr::Alphanumeric;
resolve order conflict in pijul-core/src/tests/diff.rs at line 4
replacement in pijul-core/src/small_string.rs at line 350
[2.488072]→[50.10597:10674](∅→∅),
[50.10674]→[10.48371:48471](∅→∅),
[10.48371]→[10.48371:48471](∅→∅),
[10.48471]→[50.10675:10678](∅→∅) − unsafe fn smallstr_from_raw_ptr<'a>(p: *const u8) -> &'a SmallStr { unsafe {
− let len = *p as usize;
− std::mem::transmute(std::slice::from_raw_parts(p, 1 + len as usize))
− }}
+ unsafe fn smallstr_from_raw_ptr<'a>(p: *const u8) -> &'a SmallStr {
+ unsafe {
+ let len = *p as usize;
+ std::mem::transmute(std::slice::from_raw_parts(p, 1 + len as usize))
+ }
+ }
replacement in pijul-core/src/record.rs at line 5
[2.489056]→[2.489056:489099](∅→∅) − use crate::path::{components, Components};
+ use crate::path::{Components, components};
edit in pijul-core/src/record.rs at line 9
+ use crate::{HashMap, HashSet};
edit in pijul-core/src/record.rs at line 12
[16.1583]→[12.40828:40859](∅→∅),
[2.489199]→[12.40828:40859](∅→∅) − use crate::{HashMap, HashSet};
replacement in pijul-core/src/record.rs at line 862
[12.55162]→[50.10679:10752](∅→∅),
[50.10752]→[27.4494:4568](∅→∅),
[12.55233]→[27.4494:4568](∅→∅),
[27.4568]→[12.55233:55614](∅→∅),
[12.55233]→[12.55233:55614](∅→∅),
[12.55614]→[50.10753:10847](∅→∅),
[50.10847]→[12.55697:55740](∅→∅),
[33.17017]→[12.55697:55740](∅→∅),
[12.55697]→[12.55697:55740](∅→∅),
[12.55740]→[20.97917:97959](∅→∅),
[20.97959]→[16.1654:1903](∅→∅),
[12.55791]→[16.1654:1903](∅→∅),
[16.1903]→[50.10848:10863](∅→∅) − match working_copy.file_metadata(&full_path) { Ok(meta) => {
− debug!("full_path = {:?}, meta = {:?}", full_path, meta);
− stack.push((
− RecordItem {
− papa: item.inode,
− inode: *child_inode,
− v_papa: vertex,
− basename,
− full_path,
− metadata: meta,
− },
− components.clone(),
− ));
− } _ => if let Some(vertex) = get_inodes::<_, C, W>(txn, &channel, child_inode)? {
− let rec = self.recorded();
− let mut rec = rec.lock();
− rec.record_deleted_file(
− txn,
− txn.graph(channel),
− working_copy,
− &full_path,
− *vertex,
− changes,
− )?
− }}
+ match working_copy.file_metadata(&full_path) {
+ Ok(meta) => {
+ debug!("full_path = {:?}, meta = {:?}", full_path, meta);
+ stack.push((
+ RecordItem {
+ papa: item.inode,
+ inode: *child_inode,
+ v_papa: vertex,
+ basename,
+ full_path,
+ metadata: meta,
+ },
+ components.clone(),
+ ));
+ }
+ _ => {
+ if let Some(vertex) = get_inodes::<_, C, W>(txn, &channel, child_inode)? {
+ let rec = self.recorded();
+ let mut rec = rec.lock();
+ rec.record_deleted_file(
+ txn,
+ txn.graph(channel),
+ working_copy,
+ &full_path,
+ *vertex,
+ changes,
+ )?
+ }
+ }
+ }
replacement in pijul-core/src/record.rs at line 908
[12.56307]→[50.10864:10934](∅→∅),
[50.10934]→[12.56375:56474](∅→∅),
[12.56375]→[12.56375:56474](∅→∅) − match working_copy.modified_time(prefix) { Ok(last_modified) => {
− debug!(
− "last_modified = {:?}, channel.last = {:?}",
− last_modified
+ match working_copy.modified_time(prefix) {
+ Ok(last_modified) => {
+ debug!(
+ "last_modified = {:?}, channel.last = {:?}",
+ last_modified
+ .duration_since(std::time::UNIX_EPOCH)?
+ .as_millis(),
+ txn.last_modified(channel),
+ );
+ // Account for low-resolution filesystems, by truncating the
+ // channel modification time if the file modification time is
+ // a multiple of 1000.
+ let last_mod = last_modified
replacement in pijul-core/src/record.rs at line 922
[12.56530]→[31.130:160](∅→∅),
[31.160]→[47.10412:10452](∅→∅),
[47.10452]→[12.56597:56608](∅→∅),
[12.56597]→[12.56597:56608](∅→∅),
[12.56608]→[32.351:643](∅→∅),
[32.643]→[52.1205:1275](∅→∅) − .as_millis(),
− txn.last_modified(channel),
− );
− // Account for low-resolution filesystems, by truncating the
− // channel modification time if the file modification time is
− // a multiple of 1000.
− let last_mod = last_modified
− .duration_since(std::time::UNIX_EPOCH)?
− .as_millis() as u64;
− let channel_mod = (txn.last_modified(channel) / 1000) * 1000;
+ .as_millis() as u64;
+ let channel_mod = (txn.last_modified(channel) / 1000) * 1000;
replacement in pijul-core/src/record.rs at line 925
[52.1276]→[47.10453:10514](∅→∅),
[32.817]→[47.10453:10514](∅→∅),
[47.10514]→[32.817:853](∅→∅),
[32.817]→[32.817:853](∅→∅),
[32.853]→[50.10935:10948](∅→∅),
[50.10948]→[12.56764:56781](∅→∅),
[12.56764]→[12.56764:56781](∅→∅),
[12.56781]→[50.10949:10956](∅→∅) − debug!("recording = {:?}", last_mod >= channel_mod);
− Ok(last_mod >= channel_mod)
− } _ => {
− Ok(true)
− }}
+ debug!("recording = {:?}", last_mod >= channel_mod);
+ Ok(last_mod >= channel_mod)
+ }
+ _ => Ok(true),
+ }
replacement in pijul-core/src/record.rs at line 1127
[2.501352]→[50.10957:11035](∅→∅),
[50.11035]→[27.6854:6890](∅→∅),
[2.501478]→[27.6854:6890](∅→∅) − match working_copy.file_metadata(&item.full_path) { Ok(new_meta) => {
− self.record_nondeleted(
+ match working_copy.file_metadata(&item.full_path) {
+ Ok(new_meta) => self.record_nondeleted(
replacement in pijul-core/src/record.rs at line 1143
[35.120]→[27.7214:7229](∅→∅),
[27.7214]→[27.7214:7229](∅→∅),
[27.7229]→[50.11036:11053](∅→∅),
[50.11053]→[2.503135:503210](∅→∅),
[2.503135]→[2.503135:503210](∅→∅),
[2.503210]→[36.3235:3313](∅→∅),
[36.3313]→[7.28919:28957](∅→∅),
[2.503210]→[7.28919:28957](∅→∅),
[7.28957]→[12.59957:60021](∅→∅),
[12.60021]→[20.98239:98270](∅→∅),
[12.60060]→[7.29043:29100](∅→∅),
[20.98270]→[7.29043:29100](∅→∅),
[7.29043]→[7.29043:29100](∅→∅),
[7.29100]→[27.7230:7270](∅→∅),
[27.7270]→[50.11054:11065](∅→∅) − )?
− } _ => {
− debug!("calling record_deleted_file on {:?}", item.full_path);
− let txn_ = txn.read();
− let channel_ = channel.read();
− self.record_deleted_file(
− &*txn_,
− txn_.graph(&*channel_),
− &working_copy,
− &item.full_path,
− vertex,
− changes,
− )?
− }}
+ )?,
+ _ => {
+ debug!("calling record_deleted_file on {:?}", item.full_path);
+ let txn_ = txn.read();
+ let channel_ = channel.read();
+ self.record_deleted_file(
+ &*txn_,
+ txn_.graph(&*channel_),
+ &working_copy,
+ &item.full_path,
+ vertex,
+ changes,
+ )?
+ }
+ }
replacement in pijul-core/src/record.rs at line 1956
[6.38596]→[8.1935:1971](∅→∅),
[8.1971]→[50.11066:11091](∅→∅),
[50.11091]→[12.61462:61499](∅→∅),
[2.523985]→[12.61462:61499](∅→∅),
[12.61499]→[2.524026:524036](∅→∅),
[2.524026]→[2.524026:524036](∅→∅) − if let Some(Hunk::FileDel {
− contents, ..
− }) = self.actions.last_mut()
− {
+ if let Some(Hunk::FileDel { contents, .. }) = self.actions.last_mut() {
replacement in pijul-core/src/pristine/vertex.rs at line 130
[28.9249]→[28.9249:9318](∅→∅) − Box::new(self.0 .0.shrink().map(|x| ChangePosition(L64(x))))
+ Box::new(self.0.0.shrink().map(|x| ChangePosition(L64(x))))
replacement in pijul-core/src/pristine/mod.rs at line 102
[20.100720]→[50.12232:12285](∅→∅),
[50.12285]→[20.100771:100809](∅→∅),
[20.100771]→[20.100771:100809](∅→∅),
[20.100809]→[50.12286:12303](∅→∅),
[50.12303]→[37.0:80](∅→∅),
[20.100826]→[37.0:80](∅→∅),
[37.80]→[50.12304:12315](∅→∅) − match Arc::try_unwrap(self.0) { Ok(txn) => {
− txn.into_inner().commit()
− } _ => {
− panic!("Tried to commit an ArcTxn without dropping its references")
− }}
+ match Arc::try_unwrap(self.0) {
+ Ok(txn) => txn.into_inner().commit(),
+ _ => {
+ panic!("Tried to commit an ArcTxn without dropping its references")
+ }
+ }
replacement in pijul-core/src/pristine/mod.rs at line 857
[3.40327]→[50.12331:12350](∅→∅),
[50.12350]→[10.104130:104161](∅→∅),
[6.62745]→[10.104130:104161](∅→∅),
[10.104161]→[50.12351:12364](∅→∅),
[50.12364]→[6.62802:62829](∅→∅),
[6.62802]→[6.62802:62829](∅→∅),
[6.62829]→[50.12365:12372](∅→∅) − { Some(e) => {
− Ok((&(e?.1).b).into())
− } _ => {
− Ok(Merkle::zero())
− }}
+ {
+ Some(e) => Ok((&(e?.1).b).into()),
+ _ => Ok(Merkle::zero()),
+ }
replacement in pijul-core/src/pristine/mod.rs at line 1301
[2.618235]→[50.12433:12511](∅→∅),
[50.12511]→[7.54673:54690](∅→∅),
[10.106870]→[7.54673:54690](∅→∅),
[7.54673]→[7.54673:54690](∅→∅),
[7.54690]→[50.12512:12529](∅→∅),
[50.12529]→[7.54691:54718](∅→∅),
[2.618252]→[7.54691:54718](∅→∅),
[7.54718]→[50.12530:12543](∅→∅) − } else { match txn.find_block_end(channel, v.dest()) { Ok(&dest) => {
− dest
− } _ => {
− return Ok(());
− }}};
+ } else {
+ match txn.find_block_end(channel, v.dest()) {
+ Ok(&dest) => dest,
+ _ => {
+ return Ok(());
+ }
+ }
+ };
replacement in pijul-core/src/pristine/mod.rs at line 1332
[2.618942]→[50.12544:12614](∅→∅),
[50.12614]→[2.619006:619286](∅→∅),
[3.49906]→[2.619006:619286](∅→∅),
[7.54783]→[2.619006:619286](∅→∅),
[10.107088]→[2.619006:619286](∅→∅),
[2.619006]→[2.619006:619286](∅→∅),
[2.619286]→[10.107089:107142](∅→∅),
[10.107142]→[2.619337:619412](∅→∅),
[2.619337]→[2.619337:619412](∅→∅),
[2.619412]→[10.107143:107239](∅→∅),
[10.107239]→[2.619504:619628](∅→∅),
[2.619504]→[2.619504:619628](∅→∅),
[2.619628]→[50.12615:12628](∅→∅),
[50.12628]→[2.619641:619831](∅→∅),
[2.619641]→[2.619641:619831](∅→∅),
[2.619831]→[10.107240:107362](∅→∅),
[10.107362]→[2.619947:620022](∅→∅),
[2.619947]→[2.619947:620022](∅→∅),
[2.620022]→[10.107363:107459](∅→∅),
[10.107459]→[2.620114:620238](∅→∅),
[2.620114]→[2.620114:620238](∅→∅),
[2.620238]→[50.12629:12637](∅→∅) − } else { match txn.find_block(&channel, v.dest()) { Ok(dest) => {
− writeln!(
− f,
− "node_{}_{}_{} -> node_{}_{}_{} [label=\"{}{}{}\", color=\"{}\"{}];",
− k.change.to_base32(),
− k.start.0,
− k.end.0,
− dest.change.to_base32(),
− dest.start.0,
− dest.end.0,
− if v.flag().contains(EdgeFlags::BLOCK) {
− "["
− } else {
− ""
− },
− v.introduced_by().to_base32(),
− if v.flag().contains(EdgeFlags::BLOCK) {
− "]"
− } else {
− ""
− },
− color,
− style
− )?;
− } _ => {
− writeln!(
− f,
− "node_{}_{}_{} -> node_{}_{} [label=\"{}{}{}\", color=\"{}\"{}];",
− k.change.to_base32(),
− k.start.0,
− k.end.0,
− v.dest().change.to_base32(),
− v.dest().pos.0,
− if v.flag().contains(EdgeFlags::BLOCK) {
− "["
− } else {
− ""
− },
− v.introduced_by().to_base32(),
− if v.flag().contains(EdgeFlags::BLOCK) {
− "]"
− } else {
− ""
− },
− color,
− style
− )?;
− }}}
+ } else {
+ match txn.find_block(&channel, v.dest()) {
+ Ok(dest) => {
+ writeln!(
+ f,
+ "node_{}_{}_{} -> node_{}_{}_{} [label=\"{}{}{}\", color=\"{}\"{}];",
+ k.change.to_base32(),
+ k.start.0,
+ k.end.0,
+ dest.change.to_base32(),
+ dest.start.0,
+ dest.end.0,
+ if v.flag().contains(EdgeFlags::BLOCK) {
+ "["
+ } else {
+ ""
+ },
+ v.introduced_by().to_base32(),
+ if v.flag().contains(EdgeFlags::BLOCK) {
+ "]"
+ } else {
+ ""
+ },
+ color,
+ style
+ )?;
+ }
+ _ => {
+ writeln!(
+ f,
+ "node_{}_{}_{} -> node_{}_{} [label=\"{}{}{}\", color=\"{}\"{}];",
+ k.change.to_base32(),
+ k.start.0,
+ k.end.0,
+ v.dest().change.to_base32(),
+ v.dest().pos.0,
+ if v.flag().contains(EdgeFlags::BLOCK) {
+ "["
+ } else {
+ ""
+ },
+ v.introduced_by().to_base32(),
+ if v.flag().contains(EdgeFlags::BLOCK) {
+ "]"
+ } else {
+ ""
+ },
+ color,
+ style
+ )?;
+ }
+ }
+ }
replacement in pijul-core/src/pristine/mod.rs at line 1494
[2.623150]→[6.69755:69932](∅→∅) − impl<
− 'channel,
− 'txn: 'channel,
− T: ChannelTxnT + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
− > Iterator for PathChangeset<'channel, 'txn, T>
+ impl<'channel, 'txn: 'channel, T: ChannelTxnT + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>>
+ Iterator for PathChangeset<'channel, 'txn, T>
replacement in pijul-core/src/pristine/mod.rs at line 1535
[2.623806]→[6.70784:70964](∅→∅) − impl<
− 'channel,
− 'txn: 'channel,
− T: ChannelTxnT + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
− > Iterator for RevPathChangeset<'channel, 'txn, T>
+ impl<'channel, 'txn: 'channel, T: ChannelTxnT + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>>
+ Iterator for RevPathChangeset<'channel, 'txn, T>
replacement in pijul-core/src/pristine/mod.rs at line 1994
[9.3968]→[50.12653:12672](∅→∅),
[50.12672]→[11.16687:16717](∅→∅),
[9.3974]→[11.16687:16717](∅→∅),
[11.16717]→[10.111724:111794](∅→∅),
[10.111724]→[10.111724:111794](∅→∅),
[10.111794]→[50.12673:12686](∅→∅),
[50.12686]→[9.4050:4067](∅→∅),
[9.4050]→[9.4050:4067](∅→∅),
[9.4067]→[50.12687:12694](∅→∅) − { Some(e) => {
− let (&b, state) = e?;
− let b: u64 = b.into();
− Ok(Some((b, state.b.clone())))
− } _ => {
− Ok(None)
− }}
+ {
+ Some(e) => {
+ let (&b, state) = e?;
+ let b: u64 = b.into();
+ Ok(Some((b, state.b.clone())))
+ }
+ _ => Ok(None),
+ }
replacement in pijul-core/src/pristine/merkle.rs at line 1
[2.638683]→[40.824:853](∅→∅) − use super::{Base32, BASE32};
+ use super::{BASE32, Base32};
replacement in pijul-core/src/pristine/hash.rs at line 1
[2.644439]→[40.1322:1351](∅→∅) − use super::{Base32, BASE32};
+ use super::{BASE32, Base32};
replacement in pijul-core/src/pristine/hash.rs at line 275
[12.73142]→[50.12805:12871](∅→∅),
[50.12871]→[12.73199:73412](∅→∅),
[12.73199]→[12.73199:73412](∅→∅) − pub unsafe fn size_from_ptr(b: *const u8) -> usize { unsafe {
− if *b == HashAlgorithm::Blake3 as u8 {
− 1 + BLAKE3_BYTES
− } else if *b == HashAlgorithm::None as u8 {
− 1
− } else {
− panic!("Unknown hash algorithm {:?}", *b)
+ pub unsafe fn size_from_ptr(b: *const u8) -> usize {
+ unsafe {
+ if *b == HashAlgorithm::Blake3 as u8 {
+ 1 + BLAKE3_BYTES
+ } else if *b == HashAlgorithm::None as u8 {
+ 1
+ } else {
+ panic!("Unknown hash algorithm {:?}", *b)
+ }
replacement in pijul-core/src/pristine/hash.rs at line 285
[12.73422]→[50.12872:12879](∅→∅) edit in pijul-core/src/pristine/edge.rs at line 1
edit in pijul-core/src/pristine/edge.rs at line 4
[2.649061]→[10.117152:117168](∅→∅) replacement in pijul-core/src/pristine/change_id.rs at line 1
[2.666427]→[40.1598:1632](∅→∅) − use super::{Base32, BASE32, L64};
+ use super::{BASE32, Base32, L64};
replacement in pijul-core/src/output/output.rs at line 3
[2.671995]→[4.20001:20078](∅→∅),
[4.20078]→[2.672038:672066](∅→∅),
[2.672038]→[2.672038:672066](∅→∅) − use super::{collect_children, OutputError, OutputItem, PristineOutputError};
− use crate::alive::retrieve;
+ use super::{OutputError, OutputItem, PristineOutputError, collect_children};
edit in pijul-core/src/output/output.rs at line 5
+ use crate::alive::retrieve;
edit in pijul-core/src/output/output.rs at line 11
+ use crate::{HashMap, HashSet};
edit in pijul-core/src/output/output.rs at line 13
[2.672295]→[12.73431:73462](∅→∅) − use crate::{HashMap, HashSet};
replacement in pijul-core/src/output/output.rs at line 14
[12.73463]→[29.0:51](∅→∅) − use std::collections::{hash_map::Entry, BTreeSet};
+ use std::collections::{BTreeSet, hash_map::Entry};
replacement in pijul-core/src/output/output.rs at line 76
[50.13535]→[38.3090:3121](∅→∅),
[38.3090]→[38.3090:3121](∅→∅),
[38.3121]→[50.13536:13569](∅→∅),
[50.13569]→[38.3158:3220](∅→∅),
[38.3158]→[38.3158:3220](∅→∅),
[38.3220]→[50.13570:13603](∅→∅),
[50.13603]→[38.3257:3318](∅→∅),
[38.3257]→[38.3257:3318](∅→∅),
[38.3318]→[50.13604:13637](∅→∅),
[50.13637]→[38.3355:3386](∅→∅),
[38.3355]→[38.3355:3386](∅→∅) − Conflict::Zombie {
− inode_vertex, ..
− } => inode_vertex,
− Conflict::Cyclic {
− inode_vertex, ..
− } => inode_vertex,
− Conflict::Order {
− inode_vertex, ..
− } => inode_vertex,
+ Conflict::Zombie { inode_vertex, .. } => inode_vertex,
+ Conflict::Cyclic { inode_vertex, .. } => inode_vertex,
+ Conflict::Order { inode_vertex, .. } => inode_vertex,
replacement in pijul-core/src/output/output.rs at line 891
[41.191]→[43.2035:2074](∅→∅) − let cmp = b.1 .1.cmp(&a.1 .1);
+ let cmp = b.1.1.cmp(&a.1.1);
edit in pijul-core/src/output/mod.rs at line 1
edit in pijul-core/src/output/mod.rs at line 5
[2.686269]→[12.82355:82375](∅→∅) replacement in pijul-core/src/output/mod.rs at line 255
[27.23965]→[50.14031:14054](∅→∅),
[50.14054]→[27.23971:23986](∅→∅),
[27.23971]→[27.23971:23986](∅→∅),
[27.23986]→[50.14055:14068](∅→∅),
[50.14068]→[44.4948:5135](∅→∅),
[27.23999]→[44.4948:5135](∅→∅),
[44.5135]→[27.23999:24332](∅→∅),
[27.23999]→[27.23999:24332](∅→∅) − { Some(child) => {
− child?
− } _ => {
− return Ok(());
− // The following was supposed to be a panic, but actually it
− // doesn't need to be one, there just wasn't any file to
− // output.
− /*
− let mut edge = None;
− for e in iter_adjacent(
− txn,
− channel,
− *name_vertex,
− EdgeFlags::FOLDER,
− EdgeFlags::all(),
− )? {
− let e = e?;
− if !e.flag().contains(EdgeFlags::PARENT) {
− edge = Some(e);
− break;
+ {
+ Some(child) => child?,
+ _ => {
+ return Ok(());
+ // The following was supposed to be a panic, but actually it
+ // doesn't need to be one, there just wasn't any file to
+ // output.
+ /*
+ let mut edge = None;
+ for e in iter_adjacent(
+ txn,
+ channel,
+ *name_vertex,
+ EdgeFlags::FOLDER,
+ EdgeFlags::all(),
+ )? {
+ let e = e?;
+ if !e.flag().contains(EdgeFlags::PARENT) {
+ edge = Some(e);
+ break;
+ }
edit in pijul-core/src/output/mod.rs at line 277
+ let e = edge.unwrap();
+ let mut f = std::fs::File::create("debug_output").unwrap();
+ debug_root(txn, channel, e.dest().inode_vertex(), &mut f, false).unwrap();
+ panic!("no child");
+ */
replacement in pijul-core/src/output/mod.rs at line 283
[27.24356]→[27.24356:24566](∅→∅),
[27.24566]→[44.5136:5147](∅→∅),
[44.5147]→[50.14069:14077](∅→∅) − let e = edge.unwrap();
− let mut f = std::fs::File::create("debug_output").unwrap();
− debug_root(txn, channel, e.dest().inode_vertex(), &mut f, false).unwrap();
− panic!("no child");
− */
− }};
replacement in pijul-core/src/output/mod.rs at line 307
[2.689916]→[50.14078:14188](∅→∅),
[50.14188]→[46.0:21](∅→∅),
[6.87390]→[46.0:21](∅→∅),
[45.20]→[38.5969:6057](∅→∅),
[46.21]→[38.5969:6057](∅→∅),
[6.87402]→[38.5969:6057](∅→∅),
[38.6057]→[53.1297:1481](∅→∅),
[45.114]→[38.6146:6287](∅→∅),
[53.1481]→[38.6146:6287](∅→∅),
[38.6146]→[38.6146:6287](∅→∅) − match iter_adjacent(txn, channel, pos.inode_vertex(), f, f | EdgeFlags::BLOCK)?.next()
− { Some(n) => {
− let _n = n?;
− let mut id = Vec::new();
− let f = EdgeFlags::FOLDER | EdgeFlags::PARENT;
− for e in iter_adjacent(
− txn,
− channel,
− pos.inode_vertex(),
− f,
− f | EdgeFlags::BLOCK | EdgeFlags::PSEUDO,
− )? {
− let e = e?;
− if e.flag().contains(f) {
− id.push(txn.get_external(&e.introduced_by())?.unwrap().into())
+ match iter_adjacent(txn, channel, pos.inode_vertex(), f, f | EdgeFlags::BLOCK)?.next() {
+ Some(n) => {
+ let _n = n?;
+ let mut id = Vec::new();
+ let f = EdgeFlags::FOLDER | EdgeFlags::PARENT;
+ for e in iter_adjacent(
+ txn,
+ channel,
+ pos.inode_vertex(),
+ f,
+ f | EdgeFlags::BLOCK | EdgeFlags::PSEUDO,
+ )? {
+ let e = e?;
+ if e.flag().contains(f) {
+ id.push(txn.get_external(&e.introduced_by())?.unwrap().into())
+ }
replacement in pijul-core/src/output/mod.rs at line 324
[38.6301]→[38.6301:6311](∅→∅),
[38.6311]→[45.115:205](∅→∅) − }
− if id.is_empty() {
− Ok(None)
− } else {
− Ok(Some(id))
+ if id.is_empty() {
+ Ok(None)
+ } else {
+ Ok(Some(id))
+ }
replacement in pijul-core/src/output/mod.rs at line 330
[45.215]→[50.14189:14202](∅→∅),
[50.14202]→[38.6333:6350](∅→∅),
[6.87432]→[38.6333:6350](∅→∅),
[38.6350]→[50.14203:14210](∅→∅) edit in pijul-core/src/output/archive.rs at line 2
edit in pijul-core/src/output/archive.rs at line 5
[47.10653]→[2.690096:690117](∅→∅),
[2.690096]→[2.690096:690117](∅→∅) replacement in pijul-core/src/output/archive.rs at line 127
[47.10761]→[47.10761:10965](∅→∅) − P: std::error::Error + 'static,
− T: GraphTxnT + TreeTxnT,
− A: std::error::Error + 'static,
− W: std::error::Error + 'static,
− > std::fmt::Debug for ArchiveError<P, T, A, W>
+ P: std::error::Error + 'static,
+ T: GraphTxnT + TreeTxnT,
+ A: std::error::Error + 'static,
+ W: std::error::Error + 'static,
+ > std::fmt::Debug for ArchiveError<P, T, A, W>
replacement in pijul-core/src/missing_context.rs at line 169
[22.1716]→[50.14211:14301](∅→∅),
[50.14301]→[22.1804:1845](∅→∅),
[22.1804]→[22.1804:1845](∅→∅) − let dest_vertex = match txn.find_block_end(&channel, pos) { Ok(&dest_vertex) => {
− if !dest_vertex.is_empty() {
+ let dest_vertex = match txn.find_block_end(&channel, pos) {
+ Ok(&dest_vertex) => {
+ if !dest_vertex.is_empty() {
+ continue;
+ }
+ dest_vertex
+ }
+ _ => {
replacement in pijul-core/src/missing_context.rs at line 179
[22.1885]→[22.1885:1909](∅→∅),
[22.1909]→[50.14302:14319](∅→∅),
[50.14319]→[22.1926:1948](∅→∅),
[22.1926]→[22.1926:1948](∅→∅),
[22.1948]→[50.14320:14332](∅→∅) − dest_vertex
− } _ => {
− continue;
− }};
replacement in pijul-core/src/lib.rs at line 66
[2.720137]→[20.103514:103585](∅→∅) − pub use crate::apply::{apply_change_arc, ApplyError, LocalApplyError};
+ pub use crate::apply::{ApplyError, LocalApplyError, apply_change_arc};
replacement in pijul-core/src/lib.rs at line 85
[48.448]→[48.448:704](∅→∅) − T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>
− + ::sanakirja::RootPageMut
− + ::sanakirja::Commit
− + ::sanakirja::AllocPage<Error = ::sanakirja::Error>,
− > MutTxnTExt for pristine::sanakirja::GenericTxn<T>
+ T: ::sanakirja::LoadPage<Error = ::sanakirja::Error>
+ + ::sanakirja::RootPageMut
+ + ::sanakirja::Commit
+ + ::sanakirja::AllocPage<Error = ::sanakirja::Error>,
+ > MutTxnTExt for pristine::sanakirja::GenericTxn<T>
replacement in pijul-core/src/lib.rs at line 100
[16.3162]→[50.14333:14400](∅→∅),
[50.14400]→[13.175:209](∅→∅),
[13.175]→[13.175:209](∅→∅),
[13.209]→[50.14401:14414](∅→∅),
[50.14414]→[13.222:245](∅→∅),
[13.222]→[13.222:245](∅→∅),
[13.245]→[50.14415:14423](∅→∅) − let txn = match std::sync::Arc::try_unwrap(txn) { Ok(txn) => {
− txn.into_inner().unwrap()
− } _ => {
− unreachable!()
− }};
+ let txn = match std::sync::Arc::try_unwrap(txn) {
+ Ok(txn) => txn.into_inner().unwrap(),
+ _ => {
+ unreachable!()
+ }
+ };
replacement in pijul-core/src/lib.rs at line 389
[6.97793]→[50.14444:14467](∅→∅),
[50.14467]→[10.127541:127563](∅→∅),
[6.97803]→[10.127541:127563](∅→∅) − { Some(p) => {
− Ok(Some((
+ {
+ Some(p) => Ok(Some((
replacement in pijul-core/src/lib.rs at line 396
[10.127739]→[10.127739:127755](∅→∅),
[10.127755]→[50.14468:14485](∅→∅),
[50.14485]→[6.97895:97916](∅→∅),
[6.97895]→[6.97895:97916](∅→∅),
[6.97916]→[50.14486:14497](∅→∅) − )))
− } _ => {
− Ok(None)
− }}
+ ))),
+ _ => Ok(None),
+ }
replacement in pijul-core/src/lib.rs at line 440
[2.732181]→[50.14498:14596](∅→∅),
[50.14596]→[47.11416:11455](∅→∅),
[47.11416]→[47.11416:11455](∅→∅),
[47.11455]→[50.14597:14614](∅→∅),
[50.14614]→[47.11472:11493](∅→∅),
[47.11472]→[47.11472:11493](∅→∅),
[47.11493]→[50.14615:14626](∅→∅) − match fs::find_path(changes, self, &channel.read(), false, position)? { Some((a, b)) => {
− Ok(Some((a.join("/"), b)))
− } _ => {
− Ok(None)
− }}
+ match fs::find_path(changes, self, &channel.read(), false, position)? {
+ Some((a, b)) => Ok(Some((a.join("/"), b))),
+ _ => Ok(None),
+ }
replacement in pijul-core/src/lib.rs at line 456
[2.732653]→[50.14627:14724](∅→∅),
[50.14724]→[47.11599:11638](∅→∅),
[47.11599]→[47.11599:11638](∅→∅),
[47.11638]→[50.14725:14742](∅→∅),
[50.14742]→[47.11655:11676](∅→∅),
[47.11655]→[47.11655:11676](∅→∅),
[47.11676]→[50.14743:14754](∅→∅) − match fs::find_path(changes, self, &channel.read(), true, position)? { Some((a, b)) => {
− Ok(Some((a.join("/"), b)))
− } _ => {
− Ok(None)
− }}
+ match fs::find_path(changes, self, &channel.read(), true, position)? {
+ Some((a, b)) => Ok(Some((a.join("/"), b))),
+ _ => Ok(None),
+ }
replacement in pijul-core/src/lib.rs at line 675
[6.100856]→[6.100856:101010](∅→∅) − 'txn,
− T: pristine::DepsTxnT + pristine::GraphTxnT<GraphError = <T as pristine::DepsTxnT>::DepsError>,
− > Iterator for Touched<'txn, T>
+ 'txn,
+ T: pristine::DepsTxnT + pristine::GraphTxnT<GraphError = <T as pristine::DepsTxnT>::DepsError>,
+ > Iterator for Touched<'txn, T>
replacement in pijul-core/src/lib.rs at line 758
[49.424]→[49.424:473](∅→∅) − && &buffer[3..] == &*reencoded {
+ && &buffer[3..] == &*reencoded
+ {
edit in pijul-core/src/fs.rs at line 17
edit in pijul-core/src/fs.rs at line 21
[2.738443]→[12.85163:85183](∅→∅) replacement in pijul-core/src/fs.rs at line 579
[6.109136]→[5.15074:15281](∅→∅),
[5.15074]→[5.15074:15281](∅→∅),
[5.15281]→[6.109137:109176](∅→∅) − stack: vec![iter_adjacent(
− txn,
− &channel,
− key.inode_vertex(),
− EdgeFlags::FOLDER,
− EdgeFlags::FOLDER | EdgeFlags::PSEUDO | EdgeFlags::BLOCK,
− )
− .map_err(|e| e.0)?],
+ stack: vec![
+ iter_adjacent(
+ txn,
+ &channel,
+ key.inode_vertex(),
+ EdgeFlags::FOLDER,
+ EdgeFlags::FOLDER | EdgeFlags::PSEUDO | EdgeFlags::BLOCK,
+ )
+ .map_err(|e| e.0)?,
+ ],
replacement in pijul-core/src/diff/replace.rs at line 3
[2.780033]→[2.780033:780074](∅→∅) − use super::{bytes_len, bytes_pos, Line};
+ use super::{Line, bytes_len, bytes_pos};
replacement in pijul-core/src/diff/mod.rs at line 1
[2.793247]→[2.793248:793289](∅→∅) − use crate::alive::{output_graph, Graph};
+ use crate::alive::{Graph, output_graph};
replacement in pijul-core/src/diff/diff.rs at line 107
[2.803444]→[30.952:1047](∅→∅) − if self.stop_early {
− Err(())
− } else {
− Ok(())
− }
+ if self.stop_early { Err(()) } else { Ok(()) }
replacement in pijul-core/src/diff/diff.rs at line 118
[2.803784]→[30.1083:1178](∅→∅) − if self.stop_early {
− Err(())
− } else {
− Ok(())
− }
+ if self.stop_early { Err(()) } else { Ok(()) }
replacement in pijul-core/src/diff/diff.rs at line 138
[2.804234]→[30.1214:1309](∅→∅) − if self.stop_early {
− Err(())
− } else {
− Ok(())
− }
+ if self.stop_early { Err(()) } else { Ok(()) }
replacement in pijul-core/src/diff/delete.rs at line 4
[2.805528]→[2.805528:805569](∅→∅) − use super::{bytes_len, bytes_pos, Line};
+ use super::{Line, bytes_len, bytes_pos};
edit in pijul-core/src/diff/bin.rs at line 2
[18.2547]→[18.2547:2586](∅→∅) − use std::collections::hash_map::Entry;
edit in pijul-core/src/diff/bin.rs at line 3
+ use std::collections::hash_map::Entry;
edit in pijul-core/src/changestore/memory.rs at line 2
edit in pijul-core/src/changestore/memory.rs at line 5
[2.820846]→[12.87383:87403](∅→∅) replacement in pijul-core/src/changestore/filesystem.rs at line 153
[2.828061]→[50.14938:15028](∅→∅),
[50.15028]→[2.828149:828178](∅→∅),
[2.828149]→[2.828149:828178](∅→∅),
[2.828178]→[50.15029:15046](∅→∅),
[50.15046]→[2.828195:828213](∅→∅),
[2.828195]→[2.828195:828213](∅→∅),
[2.828213]→[50.15047:15058](∅→∅) − match crate::change::ChangeFile::open(hash, &path.to_str().unwrap()) { Ok(p) => {
− p.has_contents()
− } _ => {
− false
− }}
+ match crate::change::ChangeFile::open(hash, &path.to_str().unwrap()) {
+ Ok(p) => p.has_contents(),
+ _ => false,
+ }
edit in pijul-core/src/change/noenc.rs at line 4
edit in pijul-core/src/change/noenc.rs at line 7
[17.6885]→[17.6885:6902](∅→∅) edit in pijul-core/src/alive/dfs.rs at line 2
edit in pijul-core/src/alive/dfs.rs at line 5
[2.1000568]→[12.108917:108937](∅→∅)