chore(formatting): Normalize rustfmt-only files

Chasesomero
Mar 14, 2026, 2:38 AM
MSBALN24MX5WWMAZ2YJEXL4UNPDI2AR2WCUZQUOXSMDIDLRSLOZQC

Dependencies

  • [2] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [3] I52XSRUH Massive cleanup, and simplification
  • [4] VO5OQW4W Removing anyhow in libpijul
  • [5] MU5GSJAW Partial push and pull (WARNING: breaks the existing protocol)
  • [6] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [7] GHO6DWPI Refactoring iterators
  • [8] CCFJ7VO3 Renaming "Record" to "Hunk" in the changes
  • [9] QMTANHVN Reset: only output changed files
  • [10] YN63NUZO Sanakirja 1.0
  • [11] IIV3EL2X Cleanup, formatting, and fixing the Git feature
  • [12] I24UEJQL Various post-fire fixes
  • [13] V3HHWF4Q Commit function in libpijul
  • [14] IACED7RW text_encoding module
  • [15] 3S6LU2U5 abstract out FileMetadata (de)serialistion
  • [16] RRCSHAYZ Formatting
  • [17] SMMBFECL Converting to the new patch format "online"
  • [18] TGA6QXGI Initial support for binary diffs (conflicts are not yet supported in the output)
  • [19] 4DNDMC7I Fixing a number of bugs related to encodings (extra newlines + misdetection in linux2x)
  • [20] FXEDPLRI Resurrecting tests, and type cleanup (no need for Arc<RwLock<…>> anymore)
  • [21] V4T4SC7O Testing binary diff
  • [22] UEWNF7X3 Detecting "self-solving" zombie folder (or file) conflicts
  • [23] 7KNPYIDU Splitting the WorkingCopy trait into a read-only record and a read/write output
  • [24] NUAOEIXM Adding inode and byte to Local
  • [25] 3I4PAA2A Making a few types and methods public
  • [26] 2VXTRPO4 Custom diff separators
  • [27] RMDMAYRX Adding a root inode (aka supporting submodules)
  • [28] 5FI6SBEZ Re-implement change printing and parsing
  • [29] HBUMCAFV Avoid printing multiple names conflicts more than once
  • [30] OY3CGEHQ Early stop in the diff algorithms for diff --short
  • [31] LODKR74E Changing touched_channel resolution to milliseconds instead of seconds
  • [32] Q6MRVSJX Higher resolution for status change times on Unix, and coarser test for 1-second-resolution filesystems
  • [33] ZDK3GNDB Tag transactions (including a massive refactoring of errors)
  • [34] DO2Y5TY5 Tag synchronisation
  • [35] PXR7LQ26 Resurrecting known deleted files instead of re-adding them (this is needed after `tag reset`)
  • [36] YXAVFTPP Allowing vertex buffer to use references to the transaction, by changing `output::output` to take an ArcTxn<T> instead of a simple T
  • [37] QADQISWQ More explicit panic when committing an ArcTxn that still has references
  • [38] 3QXUJMZD More detailed display of conflicts
  • [39] WBTE6H6V Solving a conflict
  • [40] 4RQHY7LH Support parsing lowercase base32
  • [41] PEUUYRZ5 Order of removing paths when outputting a repo
  • [42] RVAH6PXA Getting libpijul to compile to WASM32
  • [43] C5MZXLVC Fix in output
  • [44] MQ6ERQ43 Bug fixes when unrecording a patch that introduced zombie files
  • [45] 7UGR3U3W Fixing wrongly detected zombie files
  • [46] SR3VSEJX Fixing a warning
  • [47] 7FP2DFNX Optimisation: avoid re-checking the entire repo when recording after an unrecord
  • [48] FSJBK6CU Fixing the stitching in cyclic conflict
  • [49] 66KOHBXH [fix]fix the situation that pijul recognized UTF-8 text file with UTF-8 BOM as binary
  • [50] 4USQK3IW Big rename: libpijul => pijul-core, to match all other crates in the ecosystem
  • [51] OMGL7JBC Bump pijul-core to edition 2024
  • [52] 4NEVLBWG Fixing some failing tests
  • [53] U7JXPYVL Detecting zombie files in output, even if their zombiness is only transitive
  • [54] DJYHARZ7 Skipping old files when recording
  • [55] X243Z3Y5 Recording only the required metadata (can even be changed later!)
  • [56] Q3GU26WD merge with changes from sanakirja v1.1.2
  • [57] GJZWSXHQ Do not remove files not tracked in the new channel when outputting
  • [58] PKIHBUGT Setting the oldest modification time to EPOCH if no file has changed
  • [59] G6S6PWZE Do not touch the channel if this is a partial record
  • [60] CIEUBH46 Fixing an index-out-of-bounds error when serialising bad changes
  • [61] ZSF3YFZT encoded file deletion
  • [62] 4NNR32V6 conflicts
  • [63] NYOF5766 track file encoding in the record, including change text for file adds
  • [64] ZHABNS3S Canonicalize all paths
  • [65] UM5DLRPB store new non-UTF-8 files raw and decode to deplay the contents
  • [66] A3RM526Y Integrating identity malleability
  • [67] QDP3R3BG Updating with the latest Sanakirja
  • [68] AF5AKUTO Cleanup after the text changes refactoring
  • [69] X7OHUPL5 Fixing a bug in unrecord, and fixing the tests
  • [70] 5GYRDN47 Error cleanup in libpijul
  • [71] TIPZ7UXN Started fixing the tests for parallel record/output
  • [72] PJ7T2VFL Do not hang on locked repositories
  • [73] IYJZVLET Cleaning up the literate programming bits
  • [74] 3AMEP2Y5 More convenient interface for channels
  • [75] TVVW53HZ Conflict resolution
  • [76] S7MAMMFW Formatting
  • [77] HWYGVLP5 Replacing the temporary copy of chardetng with the published version
  • [78] QPVP5D7L Fixing warning + formatting
  • [79] YWUZQU3T Formatting (for some reason, this previously escaped the hooks)
  • [80] FFV37WXG 🩹 Remove unused fields in diff algorithm
  • [81] 246V5TYI decode existing files

Change contents

  • 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};
    [14.19]
    [42.86]
    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());
    [10.21138]
    [20.7448]
    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)));
    [2.327875]
    [2.327993]
    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)));
    [2.331968]
    [2.332085]
    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
    [51.23][51.23:54]()
    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
    [51.23]
    [52.620]
  • 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))
    }}
    [2.488072]
    [10.48473]
    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};
    [2.489056]
    [2.489099]
    use crate::path::{Components, components};
  • edit in pijul-core/src/record.rs at line 9
    [23.1489]
    [16.1477]
    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,
    )?
    }}
    [12.55162]
    [12.55906]
    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
    [12.56307]
    [12.56474]
    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;
    [12.56530]
    [52.1275]
    .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)
    }}
    [52.1276]
    [12.56787]
    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(
    [2.501352]
    [36.3187]
    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,
    )?
    }}
    [35.120]
    [27.7280]
    )?,
    _ => {
    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()
    {
    [6.38596]
    [2.524036]
    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))))
    [28.9249]
    [28.9318]
    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")
    }}
    [20.100720]
    [20.100863]
    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())
    }}
    [3.40327]
    [3.40634]
    {
    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(());
    }}};
    [2.618235]
    [2.618320]
    } 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
    )?;
    }}}
    [2.618942]
    [2.620244]
    } 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>
    [2.623150]
    [6.69932]
    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>
    [2.623806]
    [6.70964]
    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)
    }}
    [9.3968]
    [9.4073]
    {
    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};
    [2.638683]
    [2.638758]
    use super::{BASE32, Base32};
  • replacement in pijul-core/src/pristine/hash.rs at line 1
    [2.644439][40.1322:1351]()
    use super::{Base32, BASE32};
    [2.644439]
    [2.644514]
    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)
    [12.73142]
    [12.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)
    }
  • replacement in pijul-core/src/pristine/hash.rs at line 285
    [12.73422][50.12872:12879]()
    }}
    [12.73422]
    [12.73428]
    }
  • edit in pijul-core/src/pristine/edge.rs at line 1
    [2.648958]
    [2.649014]
    use super::L64;
  • edit in pijul-core/src/pristine/edge.rs at line 4
    [2.649061][10.117152:117168]()
    use super::L64;
  • replacement in pijul-core/src/pristine/change_id.rs at line 1
    [2.666427][40.1598:1632]()
    use super::{Base32, BASE32, L64};
    [2.666427]
    [25.2817]
    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;
    [2.671995]
    [33.23273]
    use super::{OutputError, OutputItem, PristineOutputError, collect_children};
  • edit in pijul-core/src/output/output.rs at line 5
    [33.23302]
    [2.672066]
    use crate::alive::retrieve;
  • edit in pijul-core/src/output/output.rs at line 11
    [2.672254]
    [2.672254]
    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};
    [12.73463]
    [20.101615]
    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,
    [50.13535]
    [38.3386]
    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);
    [41.191]
    [41.228]
    let cmp = b.1.1.cmp(&a.1.1);
  • edit in pijul-core/src/output/mod.rs at line 1
    [2.686190]
    [15.1424]
    use crate::HashMap;
  • edit in pijul-core/src/output/mod.rs at line 5
    [2.686269][12.82355:82375]()
    use crate::HashMap;
  • 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;
    [27.23965]
    [27.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;
    }
  • edit in pijul-core/src/output/mod.rs at line 277
    [27.24346]
    [27.24346]
    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");
    */
    }};
    [27.24356]
    [27.24573]
    };
  • 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())
    [2.689916]
    [38.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())
    }
  • 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))
    [38.6301]
    [45.205]
    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]()
    } _ => {
    Ok(None)
    }}
    [45.215]
    [12.82579]
    _ => Ok(None),
    }
  • edit in pijul-core/src/output/archive.rs at line 2
    [2.690059]
    [2.690059]
    use crate::Conflict;
  • edit in pijul-core/src/output/archive.rs at line 5
    [47.10653][2.690096:690117](),[2.690096][2.690096:690117]()
    use crate::Conflict;
  • 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>
    [47.10761]
    [6.87733]
    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() {
    [22.1716]
    [22.1845]
    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;
    }};
    [22.1885]
    [22.1959]
    };
  • replacement in pijul-core/src/lib.rs at line 66
    [2.720137][20.103514:103585]()
    pub use crate::apply::{apply_change_arc, ApplyError, LocalApplyError};
    [2.720137]
    [26.377]
    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>
    [48.448]
    [48.704]
    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!()
    }};
    [16.3162]
    [13.252]
    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((
    [6.97793]
    [10.127563]
    {
    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)
    }}
    [10.127739]
    [2.731143]
    ))),
    _ => 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)
    }}
    [2.732181]
    [2.732254]
    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)
    }}
    [2.732653]
    [2.732725]
    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>
    [6.100856]
    [6.101010]
    '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 {
    [49.424]
    [49.473]
    && &buffer[3..] == &*reencoded
    {
  • edit in pijul-core/src/fs.rs at line 17
    [2.738364]
    [2.738364]
    use crate::HashSet;
  • edit in pijul-core/src/fs.rs at line 21
    [2.738443][12.85163:85183]()
    use crate::HashSet;
  • 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)?],
    [6.109136]
    [12.85184]
    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};
    [2.780033]
    [24.1147]
    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};
    [2.793247]
    [2.793289]
    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(())
    }
    [2.803444]
    [2.803459]
    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(())
    }
    [2.803784]
    [2.803799]
    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(())
    }
    [2.804234]
    [2.804249]
    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};
    [2.805528]
    [2.805569]
    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
    [18.2617]
    [18.2617]
    use std::collections::hash_map::Entry;
  • edit in pijul-core/src/changestore/memory.rs at line 2
    [2.820772]
    [34.46348]
    use crate::HashMap;
  • edit in pijul-core/src/changestore/memory.rs at line 5
    [2.820846][12.87383:87403]()
    use crate::HashMap;
  • 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
    }}
    [2.828061]
    [2.828223]
    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
    [42.3704]
    [42.3704]
    use crate::Hash;
  • edit in pijul-core/src/change/noenc.rs at line 7
    [17.6885][17.6885:6902]()
    use crate::Hash;
  • edit in pijul-core/src/alive/dfs.rs at line 2
    [2.1000515]
    [2.1000515]
    use crate::HashSet;
  • edit in pijul-core/src/alive/dfs.rs at line 5
    [2.1000568][12.108917:108937]()
    use crate::HashSet;