Refactoring iterators

[?]
Jan 1, 2021, 8:09 PM
GHO6DWPILBBTL6CVZKERJBTFL3EY6ZT4YM4E5R4S6YPGVFKFHCVAC

Dependencies

  • [2] 3M7WBE24 Re-adding anyhow in the tests of libpijul
  • [3] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [4] UFCZKKLX Upgrading to the latest Sanakirja/Rand
  • [5] 76PCXGML Pushing to, and pulling from the local repository
  • [6] LCERQSWM Cleanup
  • [7] 5BRU2RRW Cleanup (debugging a crash related to trees/inodes)
  • [8] QNJBR73K don't return Result for infallible functions
  • [9] ZHABNS3S Canonicalize all paths
  • [10] 3YDPHBAN address non-controversial clippy lints
  • [11] VO5OQW4W Removing anyhow in libpijul
  • [12] ZWPPIJXF flake.nix: use Mozilla overlay for Rust
  • [13] Q45QHPO4 Feedback on network stuff
  • [14] XL6Y64UP Fixing a panic when iterating over the basenames of a file
  • [15] Q4SVMHAE Removing --channel from the changes command
  • [16] BXD3IQYN Fixing --features git
  • [17] WKX5S4Z4 remove unneccesary explicit lifetimes
  • [18] ERV3644Q Adding the block module
  • [19] 7PM25EXL Recursive apply was written a little too fast…
  • [20] YAJAXIV5 Unrecording changes atomically
  • [21] KDF6FJRV bigger clippy refactors
  • [22] HMMMKONL Fixing alive vertices
  • [23] 43AJ37IX Getting rid of edge validation, which does not work for zombie conflicts
  • [24] ZXTHL45O address clippy lints
  • [25] H23LO7U7 a few more clippy lints addressed
  • [26] WZVCLZKY address clippy lints
  • [27] GVQ7YSED Checking for dependencies even for a local change
  • [28] ATZ3BWSE Fixing the double-deletion of repairs for folder edges
  • [29] 6RVT5X4L Current state: return zero instead of an Option if there is no change on the channel
  • [30] MU5GSJAW Partial push and pull (WARNING: breaks the existing protocol)
  • [31] PJ7T2VFL Do not hang on locked repositories
  • [32] UNZXTNSJ Change text format: order dependencies in the order they were on the channel at record time
  • [33] H3NAKE2I Adding num_cpus to Cargo.lock
  • [34] ZXCRG5RP It seems change inverses will need a little more work
  • [35] 6YMDOZIB Refactoring apply
  • [36] L4JXJHWX pijul/*: reorganize imports and remove extern crate
  • [37] I52XSRUH Massive cleanup, and simplification
  • [38] KQTD46KV Unrecord: restore files *after* having unapplied the *entire* change
  • [39] 5DVRL6MF Hard-unrecord
  • [40] BD5PC25A Deleting conflict resolution vertices when the sides are deleted
  • [41] DNQHXWRZ address clippy hard errors
  • [42] FMKKWCFV Better clap attributes
  • [43] SPA2OL5I keep-changes feature (default) to avoid deleting problematic changes
  • [44] A7NTQINQ pijul channel delete: error if channel doesn't exist
  • [45] NA5I4WYN Fixing the inverse of conflict resolutions
  • [46] 23LVKATN Use pager crate for log output
  • [47] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).

Change contents

  • replacement in pijul-macros/src/lib.rs at line 376
    [4.12375][3.2519:2636]()
    ) -> Result<super::Cursor<Self, &'txn Self, Self::#cursor_name, #key, #value>, TxnErr<SanakirjaError>> {
    [4.12375]
    [4.12460]
    ) -> Result<Cursor<Self, &'txn Self, Self::#cursor_name, #key, #value>, TxnErr<SanakirjaError>> {
  • replacement in pijul-macros/src/lib.rs at line 390
    [4.12848][3.2637:2746]()
    ) -> Result<super::Cursor<Self, RT, Self::#cursor_name, #key, #value>, TxnErr<SanakirjaError>> {
    [4.12848]
    [4.12925]
    ) -> Result<Cursor<Self, RT, Self::#cursor_name, #key, #value>, TxnErr<SanakirjaError>> {
  • replacement in pijul-macros/src/lib.rs at line 393
    [3.2820][3.2820:2859]()
    Ok(super::Cursor {
    [3.2820]
    [3.2859]
    Ok(Cursor {
  • replacement in pijul-macros/src/lib.rs at line 440
    [4.14294][3.3665:3782]()
    ) -> Result<super::Cursor<Self, &'txn Self, Self::#cursor_name, #key, #value>, TxnErr<SanakirjaError>> {
    [4.14294]
    [4.14379]
    ) -> Result<Cursor<Self, &'txn Self, Self::#cursor_name, #key, #value>, TxnErr<SanakirjaError>> {
  • replacement in pijul-macros/src/lib.rs at line 447
    [3.4007][3.4007:4042]()
    Ok(super::Cursor {
    [3.4007]
    [4.14504]
    Ok(Cursor {
  • edit in pijul/src/commands/unrecord.rs at line 7
    [4.59]
    [3.11703]
    use libpijul::pristine::sanakirja::Txn;
  • replacement in pijul/src/commands/unrecord.rs at line 81
    [4.1883][4.1883:1954]()
    .get_changeset(&channel_.changes, change_id, None)
    [4.1883]
    [4.1954]
    .get_changeset(Txn::changes(&channel_), change_id)
  • replacement in pijul/src/commands/unrecord.rs at line 96
    [4.96953][3.11991:12073]()
    if txn.get_changeset(&channel_.changes, d, None)?.is_some() {
    [4.96953]
    [3.12073]
    if txn.get_changeset(Txn::changes(&channel_), d)?.is_some() {
  • edit in pijul/src/commands/pushpull.rs at line 10
    [4.111707]
    [3.12857]
    use libpijul::pristine::sanakirja::Txn;
  • replacement in pijul/src/commands/pushpull.rs at line 196
    [3.13636][3.13636:13721]()
    if txn.get_changeset(&channel.changes, h_int, None)?.is_none() {
    [3.13636]
    [4.7889]
    if txn.get_changeset(Txn::changes(&channel), h_int)?.is_none() {
  • replacement in pijul/src/commands/pushpull.rs at line 344
    [4.7561][3.14679:14763]()
    .get_changeset(&channel.borrow().changes, h_int, None)?
    [4.7561]
    [4.7644]
    .get_changeset(Txn::changes(&channel.borrow()), h_int)?
  • edit in pijul/src/commands/protocol.rs at line 208
    [4.132202]
    [4.132202]
    .map(|x| x as char)
  • replacement in pijul/src/commands/credit.rs at line 70
    [4.180629][4.180629:180658]()
    channel: &'a Channel<T>,
    [4.180629]
    [4.180658]
    channel: &'a T::Channel,
  • replacement in pijul/src/commands/credit.rs at line 74
    [4.6080][4.180719:180787](),[3.18387][4.180719:180787](),[4.180719][4.180719:180787]()
    pub fn new(w: W, txn: &'a T, channel: &'a Channel<T>) -> Self {
    [3.18387]
    [4.180787]
    pub fn new(w: W, txn: &'a T, channel: &'a T::Channel) -> Self {
  • replacement in pijul/src/commands/channel.rs at line 8
    [4.163][4.6265:6296](),[4.31][4.6265:6296]()
    use libpijul::{MutTxnT, TxnT};
    [4.163]
    [4.3080]
    use libpijul::{ChannelTxnT, MutTxnT, TxnT};
  • replacement in pijul/src/commands/channel.rs at line 45
    [4.187896][4.187896:187943]()
    let name = channel.name();
    [4.187896]
    [4.187943]
    let name = libpijul::pristine::sanakirja::Txn::name(&channel);
  • replacement in pijul/Cargo.toml at line 72
    [4.198041][4.198041:198054]()
    rand = "0.7"
    [4.198041]
    [4.198054]
    rand = "0.8"
  • replacement in libpijul/src/unrecord/working_copy.rs at line 31
    [4.226818][4.226818:226844]()
    channel: &Channel<T>,
    [4.226818]
    [4.226844]
    channel: &T::Channel,
  • replacement in libpijul/src/unrecord/working_copy.rs at line 37
    [4.227037][3.20235:20334]()
    let source = find_block_end(txn, &channel.graph, internal_pos(txn, &e.from, change_id)?)?;
    [4.227037]
    [4.227128]
    let source =
    txn.find_block_end(T::graph(channel), internal_pos(txn, &e.from, change_id)?)?;
  • replacement in libpijul/src/unrecord/working_copy.rs at line 53
    [4.227502][4.227502:227528]()
    channel: &Channel<T>,
    [4.227502]
    [4.227528]
    channel: &T::Channel,
  • replacement in libpijul/src/unrecord/working_copy.rs at line 67
    [4.6757][3.20594:20622]()
    &channel.graph,
    [4.6757]
    [4.6779]
    T::graph(channel),
  • replacement in libpijul/src/unrecord/working_copy.rs at line 124
    [4.229724][4.229724:229750]()
    channel: &Channel<T>,
    [4.229724]
    [4.229750]
    channel: &T::Channel,
  • replacement in libpijul/src/unrecord/working_copy.rs at line 130
    [4.7057][3.21556:21580]()
    &channel.graph,
    [4.7057]
    [4.7074]
    T::graph(channel),
  • replacement in libpijul/src/unrecord/working_copy.rs at line 142
    [4.230244][3.21712:21785]()
    .get_changeset(&channel.changes, e.introduced_by, None)?
    [4.230244]
    [4.230316]
    .get_changeset(T::changes(channel), e.introduced_by)?
  • replacement in libpijul/src/unrecord/working_copy.rs at line 157
    [4.230687][3.21786:21843]()
    find_block_end(txn, &channel.graph, next.unwrap().1)
    [4.230687]
    [4.230736]
    txn.find_block_end(T::graph(channel), next.unwrap().1)
  • replacement in libpijul/src/unrecord/mod.rs at line 85
    [4.232850][4.232850:232880]()
    channel: &mut Channel<T>,
    [4.232850]
    [4.232880]
    channel: &mut T::Channel,
  • replacement in libpijul/src/unrecord/mod.rs at line 88
    [3.23205][3.23205:23299]()
    let timestamp = if let Some(ts) = txn.get_changeset(&channel.changes, change_id, None)? {
    [3.23205]
    [4.233031]
    let timestamp = if let Some(ts) = txn.get_changeset(T::changes(channel), change_id)? {
  • replacement in libpijul/src/unrecord/mod.rs at line 101
    [4.233292][3.23369:23438]()
    if txn.get_changeset(&channel.changes, d, None)?.is_some() {
    [4.233292]
    [4.9344]
    if txn.get_changeset(T::changes(channel), d)?.is_some() {
  • replacement in libpijul/src/unrecord/mod.rs at line 119
    [4.233799][3.23599:23698]()
    if br.name != channel.name && txn.get_changeset(&br.changes, change_id, None)?.is_some() {
    [4.233799]
    [3.23698]
    if T::name(&br) != T::name(&channel)
    && txn.get_changeset(T::changes(&br), change_id)?.is_some()
    {
  • replacement in libpijul/src/unrecord/mod.rs at line 133
    [4.234094][4.234094:234124]()
    channel: &mut Channel<T>,
    [4.234094]
    [4.234124]
    channel: &mut T::Channel,
  • replacement in libpijul/src/unrecord/mod.rs at line 145
    [3.24021][3.24021:24057]()
    &mut channel.graph,
    [3.24021]
    [3.24057]
    T::graph_mut(channel),
  • replacement in libpijul/src/unrecord/mod.rs at line 154
    [4.234733][3.24152:24196]()
    &mut channel.graph,
    [4.234733]
    [4.7433]
    T::graph_mut(channel),
  • replacement in libpijul/src/unrecord/mod.rs at line 158
    [4.234880][3.24221:24320]()
    unapply_newvertex::<T, C>(txn, &mut channel.graph, change_id, &mut ws, newvertex)?
    [4.234880]
    [4.234960]
    unapply_newvertex::<T, C>(
    txn,
    T::graph_mut(channel),
    change_id,
    &mut ws,
    newvertex,
    )?
  • replacement in libpijul/src/unrecord/mod.rs at line 168
    [4.234990][3.24321:24406]()
    repair_newvertex_contexts::<T, C>(txn, &mut channel.graph, &mut ws, change_id)?;
    [4.234990]
    [4.235104]
    repair_newvertex_contexts::<T, C>(txn, T::graph_mut(channel), &mut ws, change_id)?;
  • replacement in libpijul/src/unrecord/mod.rs at line 171
    [4.2017][3.24407:24492]()
    remove_zombies::<_, C>(txn, &mut channel.graph, &mut ws, change_id, n)?;
    [4.2017]
    [4.2074]
    remove_zombies::<_, C>(txn, T::graph_mut(channel), &mut ws, change_id, n)?;
  • replacement in libpijul/src/unrecord/mod.rs at line 175
    [4.2154][3.24493:24529]()
    &mut channel.graph,
    [4.2154]
    [4.2179]
    T::graph_mut(channel),
  • replacement in libpijul/src/unrecord/mod.rs at line 202
    [4.1137][3.24610:24789](),[3.24789][4.235674:235705](),[4.347][4.235674:235705](),[4.235674][4.235674:235705]()
    crate::apply::clean_obsolete_pseudo_edges(txn, &mut channel.graph, &mut ws.apply, change_id)?;
    crate::apply::repair_cyclic_paths(txn, &mut channel.graph, &mut ws.apply)?;
    channel.last_modified = 0;
    [4.1137]
    [4.235705]
    crate::apply::clean_obsolete_pseudo_edges(
    txn,
    T::graph_mut(channel),
    &mut ws.apply,
    change_id,
    )?;
    crate::apply::repair_cyclic_paths(txn, T::graph_mut(channel), &mut ws.apply)?;
    T::touch_channel(channel, Some(0));
  • replacement in libpijul/src/unrecord/mod.rs at line 236
    [4.236556][4.551:610]()
    while let Ok(vertex) = find_block(txn, channel, pos) {
    [4.236556]
    [4.237184]
    while let Ok(vertex) = txn.find_block(channel, pos) {
  • replacement in libpijul/src/unrecord/mod.rs at line 244
    [4.789][4.7740:7814](),[4.237523][4.7740:7814]()
    let up_v = find_block_end(txn, channel, e.dest)?;
    [4.789]
    [4.237596]
    let up_v = txn.find_block_end(channel, e.dest)?;
  • replacement in libpijul/src/unrecord/mod.rs at line 248
    [4.237705][4.7815:7883]()
    let down_v = find_block(txn, channel, e.dest)?;
    [4.237705]
    [4.790]
    let down_v = txn.find_block(channel, e.dest)?;
  • replacement in libpijul/src/unrecord/mod.rs at line 277
    [4.1466][4.7884:7948](),[4.238249][4.7884:7948]()
    (find_block_end(txn, channel, e.dest)?, vertex)
    [4.1466]
    [4.238312]
    (txn.find_block_end(channel, e.dest)?, vertex)
  • replacement in libpijul/src/unrecord/mod.rs at line 279
    [4.238333][4.7949:8009]()
    (vertex, find_block(txn, channel, e.dest)?)
    [4.238333]
    [4.238392]
    (vertex, txn.find_block(channel, e.dest)?)
  • replacement in libpijul/src/unrecord/mod.rs at line 324
    [3.25422][4.8316:8385](),[4.239752][4.8316:8385]()
    let parent = find_block_end(txn, channel, parent.dest)?;
    [3.25422]
    [3.25423]
    let parent = txn.find_block_end(channel, parent.dest)?;
  • replacement in libpijul/src/unrecord/mod.rs at line 452
    [4.245741][4.9069:9132]()
    let u = find_block_end(txn, channel, e.dest)?;
    [4.245741]
    [4.2700]
    let u = txn.find_block_end(channel, e.dest)?;
  • replacement in libpijul/src/unrecord/mod.rs at line 456
    [4.246623][4.9801:9860]()
    let w = find_block(txn, channel, e.dest)?;
    [4.246623]
    [3.26780]
    let w = txn.find_block(channel, e.dest)?;
  • replacement in libpijul/src/unrecord/mod.rs at line 471
    [3.26980][4.3060:3110](),[4.3060][4.3060:3110]()
    ws.stack.push(find_block(txn, channel, to)?);
    [3.26980]
    [4.3110]
    ws.stack.push(txn.find_block(channel, to)?);
  • replacement in libpijul/src/unrecord/mod.rs at line 484
    [4.3539][4.3539:3608]()
    ws.stack.push(find_block_end(txn, channel, e.dest)?)
    [4.3539]
    [4.3608]
    ws.stack.push(txn.find_block_end(channel, e.dest)?)
  • replacement in libpijul/src/unrecord/mod.rs at line 486
    [4.3629][4.3629:3694]()
    ws.stack.push(find_block(txn, channel, e.dest)?)
    [4.3629]
    [4.3694]
    ws.stack.push(txn.find_block(channel, e.dest)?)
  • replacement in libpijul/src/unrecord/mod.rs at line 523
    [4.10170][4.10170:10222]()
    let to = find_block(txn, channel, to)?;
    [4.10170]
    [3.27339]
    let to = txn.find_block(channel, to)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 46
    [4.250161][4.10268:10366]()
    debug_to_file(&txn, &channel, "debug_un")?;
    debug_to_file(&txn, &channel2, "debug_un2")?;
    [4.250161]
    [4.250255]
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
    debug_to_file(&txn, &channel2.borrow(), "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 93
    [4.251507][4.10367:10465]()
    debug_to_file(&txn, &channel, "debug_un")?;
    debug_to_file(&txn, &channel2, "debug_un2")?;
    [4.251507]
    [4.251601]
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
    debug_to_file(&txn, &channel2.borrow(), "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 121
    [4.252346][4.10466:10514]()
    debug_to_file(&txn, &channel, "debug_un")?;
    [4.252346]
    [4.252392]
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 125
    [4.252500][4.10515:10564]()
    debug_to_file(&txn, &channel, "debug_un2")?;
    [4.252500]
    [4.252547]
    debug_to_file(&txn, &channel.borrow(), "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 221
    [4.255738][4.10565:10613]()
    debug_to_file(&txn, &channel, "debug_un")?;
    [4.255738]
    [4.255784]
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 225
    [4.255857][4.10614:10663]()
    debug_to_file(&txn, &channel, "debug_un2")?;
    [4.255857]
    [4.255904]
    debug_to_file(&txn, &channel.borrow(), "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 271
    [4.257293][4.10664:10711]()
    debug_to_file(&txn, &channel, "debug_a")?;
    [4.257293]
    [4.257338]
    debug_to_file(&txn, &channel.borrow(), "debug_a")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 280
    [4.257542][4.10712:10761]()
    debug_to_file(&txn2, &channel2, "debug_b")?;
    [4.257542]
    [4.257589]
    debug_to_file(&txn2, &channel2.borrow(), "debug_b")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 285
    [4.257671][4.10762:10810]()
    debug_to_file(&txn, &channel, "debug_un")?;
    [4.257671]
    [4.257717]
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 296
    [4.257984][4.10811:10860]()
    debug_to_file(&txn, &channel, "debug_un2")?;
    [4.257984]
    [4.258031]
    debug_to_file(&txn, &channel.borrow(), "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 326
    [4.258869][4.10922:10973]()
    debug_to_file(&txn2, &channel2, "debug_un3")?;
    [4.258869]
    [4.258918]
    debug_to_file(&txn2, &channel2.borrow(), "debug_un3")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 330
    [4.259033][4.10974:11025]()
    debug_to_file(&txn2, &channel2, "debug_un4")?;
    [4.259033]
    [4.259082]
    debug_to_file(&txn2, &channel2.borrow(), "debug_un4")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 372
    [4.260384][4.11026:11074]()
    debug_to_file(&txn, &channel, "debug_un")?;
    [4.260384]
    [4.260430]
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 375
    [4.260502][4.11075:11124]()
    debug_to_file(&txn, &channel, "debug_un2")?;
    [4.260502]
    [4.260549]
    debug_to_file(&txn, &channel.borrow(), "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 454
    [4.11285][4.11285:11330]()
    debug_to_file(&txn, &channel, "debug")?;
    [4.11285]
    [4.263035]
    debug_to_file(&txn, &channel.borrow(), "debug")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 462
    [4.11355][4.11355:11401]()
    debug_to_file(&txn, &channel, "debug2")?;
    [4.11355]
    [4.263258]
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 464
    [4.263329][4.11402:11448]()
    debug_to_file(&txn, &channel, "debug3")?;
    [4.263329]
    [4.263373]
    debug_to_file(&txn, &channel.borrow(), "debug3")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 499
    [4.264346][4.11449:11494]()
    debug_to_file(&txn, &channel, "debug")?;
    [4.264346]
    [4.264389]
    debug_to_file(&txn, &channel.borrow(), "debug")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 503
    [4.264518][4.11495:11541]()
    debug_to_file(&txn, &channel, "debug2")?;
    [4.264518]
    [4.264562]
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 520
    [4.265003][4.11542:11588]()
    debug_to_file(&txn, &channel, "debug3")?;
    [4.265003]
    [4.265047]
    debug_to_file(&txn, &channel.borrow(), "debug3")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 568
    [4.266430][4.11589:11634]()
    debug_to_file(&txn, &channel, "debug")?;
    [4.266430]
    [4.266473]
    debug_to_file(&txn, &channel.borrow(), "debug")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 598
    [4.267309][4.11635:11681]()
    debug_to_file(&txn, &channel, "debug2")?;
    [4.267309]
    [4.267353]
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 601
    [4.267424][4.11682:11728]()
    debug_to_file(&txn, &channel, "debug3")?;
    [4.267424]
    [4.267468]
    debug_to_file(&txn, &channel.borrow(), "debug3")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 700
    [4.269955][4.11729:11774]()
    debug_to_file(&txn, &channel, "debug")?;
    [4.269955]
    [4.269998]
    debug_to_file(&txn, &channel.borrow(), "debug")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 718
    [4.270484][4.11775:11821]()
    debug_to_file(&txn, &channel, "debug2")?;
    [4.270484]
    [4.270528]
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 764
    [4.271901][4.11822:11868]()
    debug_to_file(&txn, &channel, "debug0")?;
    [4.271901]
    [4.271945]
    debug_to_file(&txn, &channel.borrow(), "debug0")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 774
    [4.272286][4.11869:11964]()
    debug_to_file(&txn, &channel, "debug1a")?;
    debug_to_file(&txn, &channel2, "debug1b")?;
    [4.272286]
    [4.272377]
    debug_to_file(&txn, &channel.borrow(), "debug1a")?;
    debug_to_file(&txn, &channel2.borrow(), "debug1b")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 778
    [4.272474][4.11965:12011]()
    debug_to_file(&txn, &channel, "debug2")?;
    [4.272474]
    [4.272518]
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 826
    [4.273869][4.12012:12058]()
    debug_to_file(&txn, &channel, "debug0")?;
    [4.273869]
    [4.273913]
    debug_to_file(&txn, &channel.borrow(), "debug0")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 840
    [4.274282][4.12059:12154]()
    debug_to_file(&txn, &channel, "debug1a")?;
    debug_to_file(&txn, &channel2, "debug1b")?;
    [4.274282]
    [4.274373]
    debug_to_file(&txn, &channel.borrow(), "debug1a")?;
    debug_to_file(&txn, &channel2.borrow(), "debug1b")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 844
    [4.274470][4.12155:12201]()
    debug_to_file(&txn, &channel, "debug2")?;
    [4.274470]
    [4.274514]
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 880
    [4.275544][4.12202:12267]()
    debug_to_file(&txn, &channel2, format!("debug_{}", i))?;
    [4.275544]
    [4.275607]
    debug_to_file(&txn, &channel2.borrow(), format!("debug_{}", i))?;
  • replacement in libpijul/src/tests/unrecord.rs at line 884
    [4.275699][4.12268:12320]()
    debug_to_file(&txn, &channel2, "debug_final")?;
    [4.275699]
    [4.275749]
    debug_to_file(&txn, &channel2.borrow(), "debug_final")?;
  • replacement in libpijul/src/tests/rm_file.rs at line 30
    [4.277028][4.12321:12385]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
    [4.277028]
    [4.277090]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
  • replacement in libpijul/src/tests/rm_file.rs at line 43
    [4.277432][4.12386:12444]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.277432]
    [4.277488]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/rm_file.rs at line 49
    [4.277712][4.12445:12503]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.277712]
    [4.277768]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/rm_file.rs at line 53
    [4.277882][4.12504:12568]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.277882]
    [4.277944]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/performance.rs at line 21
    [4.278868][4.12601:12654]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.278868]
    [4.278919]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/performance.rs at line 36
    [4.279333][4.12655:12727]()
    debug_to_file(&txn, &channel, &format!("debug{}", i)).unwrap();
    [4.279333]
    [4.279403]
    debug_to_file(&txn, &channel.borrow(), &format!("debug{}", i)).unwrap();
  • replacement in libpijul/src/tests/performance.rs at line 49
    [4.279700][4.12728:12787]()
    debug_to_file(&txn, &channel, "debug_final").unwrap();
    [4.279700]
    [4.279757]
    debug_to_file(&txn, &channel.borrow(), "debug_final").unwrap();
  • replacement in libpijul/src/tests/performance.rs at line 53
    [4.279859][3.27770:27843]()
    let m = txn.cursor_graph(&channel.graph, None).unwrap().count();
    [4.279859]
    [4.279923]
    let mut m = 0;
    let mut it = txn.iter_graph(&channel.graph).unwrap();
    while let Some(Ok(_)) = txn.next_graph(&channel.graph, &mut it) {
    m += 1
    }
  • replacement in libpijul/src/tests/performance.rs at line 86
    [4.280710][4.12827:12880]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.280710]
    [4.280761]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/performance.rs at line 101
    [4.281174][4.12881:12953]()
    debug_to_file(&txn, &channel, &format!("debug{}", i)).unwrap();
    [4.281174]
    [4.281244]
    debug_to_file(&txn, &channel.borrow(), &format!("debug{}", i)).unwrap();
  • replacement in libpijul/src/tests/performance.rs at line 116
    [4.281651][4.13003:13062]()
    debug_to_file(&txn, &channel2, "debug_bob0").unwrap();
    [4.281651]
    [4.281708]
    debug_to_file(&txn, &channel2.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/performance.rs at line 129
    [4.282009][4.13063:13123]()
    debug_to_file(&txn, &channel, "debug_alice0").unwrap();
    [4.282009]
    [4.282067]
    debug_to_file(&txn, &channel.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/performance.rs at line 132
    [4.282145][4.13124:13183]()
    debug_to_file(&txn, &channel, "debug_alice").unwrap();
    [4.282145]
    [4.282202]
    debug_to_file(&txn, &channel.borrow(), "debug_alice").unwrap();
  • replacement in libpijul/src/tests/performance.rs at line 135
    [4.282281][4.13184:13242]()
    debug_to_file(&txn, &channel2, "debug_bob").unwrap();
    [4.282281]
    [4.282337]
    debug_to_file(&txn, &channel2.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/performance.rs at line 140
    [4.282440][3.27844:27917]()
    let m = txn.cursor_graph(&channel.graph, None).unwrap().count();
    [4.282440]
    [4.282504]
    let mut m = 0;
    let mut it = txn.iter_graph(&channel.graph).unwrap();
    while let Some(Ok(_)) = txn.next_graph(&channel.graph, &mut it) {
    m += 1
    }
  • replacement in libpijul/src/tests/performance.rs at line 153
    [4.282737][3.27918:27991]()
    let m = txn.cursor_graph(&channel.graph, None).unwrap().count();
    [4.282737]
    [4.282801]
    let mut m = 0;
    let mut it = txn.iter_graph(&channel.graph).unwrap();
    while let Some(Ok(_)) = txn.next_graph(&channel.graph, &mut it) {
    m += 1
    }
  • replacement in libpijul/src/tests/partial.rs at line 32
    [4.286396][4.13314:13371]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.286396]
    [4.286451]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/missing_context.rs at line 71
    [4.13698][4.13698:13750]()
    debug_to_file(&txn_bob, &channel_bob, "bob0")?;
    [4.13698]
    [4.13750]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "bob0")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 89
    [4.293888][4.13752:13810]()
    debug_to_file(&txn_alice, &channel_alice, "debug0")?;
    [4.293888]
    [4.293944]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug0")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 104
    [4.294266][4.13934:13998]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.294266]
    [4.13998]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 109
    [4.14173][4.14173:14243]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1_unrec")?;
    [4.14173]
    [4.14243]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1_unrec")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 147
    [4.295326][4.14746:14810]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
    [4.295326]
    [4.295388]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 152
    [4.295496][4.14811:14869]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.295496]
    [4.295552]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 154
    [4.295637][4.14870:14928]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.295637]
    [4.295693]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 159
    [2.2124][2.2124:2188]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2_unrec")?;
    [2.2124]
    [2.2188]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2_unrec")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 162
    [2.2266][2.2266:2334]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2_unrec_app")?;
    [2.2266]
    [2.2334]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2_unrec_app")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 173
    [4.295902][4.14929:14987]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.295902]
    [4.15218]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/missing_context.rs at line 227
    [4.297627][4.15562:15632]()
    debug_to_file(&txn_alice, &channel_alice, "debug_init").unwrap();
    [4.297627]
    [4.297713]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/missing_context.rs at line 256
    [4.298668][4.15633:15699]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
    [4.298668]
    [4.298732]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/missing_context.rs at line 271
    [4.299050][4.15700:15772]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0").unwrap();
    [4.299050]
    [4.299138]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/missing_context.rs at line 284
    [4.299465][4.15773:15845]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1").unwrap();
    [4.299465]
    [4.299553]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/missing_context.rs at line 311
    [4.300311][4.15846:15918]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2").unwrap();
    [4.300311]
    [4.300399]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 42
    [4.306701][4.15919:15983]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
    [4.306701]
    [4.306763]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 55
    [4.307105][4.15984:16042]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.307105]
    [4.307161]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 69
    [4.307491][4.16043:16107]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.307491]
    [4.307553]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 76
    [4.307809][4.16108:16166]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.307809]
    [4.307865]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 80
    [4.307979][4.16167:16231]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.307979]
    [4.308041]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 96
    [4.308453][4.16232:16290]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.308453]
    [4.308509]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 200
    [4.311427][4.16377:16441]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
    [4.311427]
    [4.311489]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 213
    [4.311831][4.16442:16500]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.311831]
    [4.311887]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 228
    [4.312226][4.16501:16565]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.312226]
    [4.312288]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 235
    [4.312558][4.16566:16624]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.312558]
    [4.312614]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 239
    [4.312728][4.16625:16689]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.312728]
    [4.312790]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 251
    [4.313073][4.16690:16748]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.313073]
    [4.313129]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 303
    [4.314596][4.16749:16807]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.314596]
    [4.314652]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 342
    [4.315935][4.16852:16916]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
    [4.315935]
    [4.315997]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 355
    [4.316369][4.16917:16975]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.316369]
    [4.316425]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 360
    [4.316657][4.16976:17034]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.316657]
    [4.316713]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 375
    [4.317052][4.17035:17099]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.317052]
    [4.317114]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 401
    [4.317945][4.17100:17170]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie1")?;
    [4.317945]
    [4.318013]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 413
    [4.318359][4.17171:17241]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie2")?;
    [4.318359]
    [4.4599]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 432
    [4.5355][4.5355:5425]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie3")?;
    [4.5355]
    [4.5425]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 448
    [4.318746][4.17242:17306]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
    [4.318746]
    [4.318808]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 469
    [4.319291][4.17307:17371]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
    [4.319291]
    [4.319353]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 474
    [4.319544][4.17372:17430]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.319544]
    [4.319600]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 488
    [4.320013][4.17431:17489]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
    [4.320013]
    [4.320069]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 519
    [4.321008][4.17490:17554]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
    [4.321008]
    [4.321070]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 532
    [4.321412][4.17555:17613]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.321412]
    [4.321468]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 544
    [4.321691][4.17614:17678]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.321691]
    [4.321753]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 552
    [4.321977][4.17679:17737]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.321977]
    [4.322033]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 556
    [4.322147][4.17738:17802]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.322147]
    [4.322209]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 566
    [4.322402][4.17803:17867]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
    [4.322402]
    [4.322464]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 590
    [4.323010][4.17868:17932]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
    [4.323010]
    [4.323072]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 594
    [4.323184][4.17933:17991]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.323184]
    [4.323240]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 606
    [4.323601][4.17992:18050]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.323601]
    [4.323657]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 647
    [4.324874][4.18051:18115]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
    [4.324874]
    [4.324936]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 660
    [4.325278][4.18116:18174]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.325278]
    [4.325334]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 672
    [4.325557][4.18175:18239]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.325557]
    [4.325619]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 682
    [4.325950][4.18240:18298]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.325950]
    [4.326006]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 686
    [4.326120][4.18299:18363]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
    [4.326120]
    [4.326182]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 697
    [4.326376][4.18364:18428]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
    [4.326376]
    [4.326438]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 715
    [4.326969][4.18429:18493]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice4")?;
    [4.326969]
    [4.327031]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice4")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 720
    [4.327194][4.18494:18552]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.327194]
    [4.327250]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 732
    [4.327611][4.18553:18611]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
    [4.327611]
    [4.327667]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 775
    [4.328933][4.18612:18676]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
    [4.328933]
    [4.328995]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 788
    [4.329337][4.18677:18735]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.329337]
    [4.329393]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 800
    [4.329616][4.18736:18800]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.329616]
    [4.329678]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 810
    [4.329986][4.18801:18859]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.329986]
    [4.330042]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 814
    [4.330156][4.18860:18924]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
    [4.330156]
    [4.330218]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 824
    [4.330411][4.18925:18989]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
    [4.330411]
    [4.330473]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 842
    [4.331018][4.18990:19054]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice4")?;
    [4.331018]
    [4.331080]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice4")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 847
    [4.331243][4.19055:19113]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.331243]
    [4.331299]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 860
    [4.331661][4.19114:19172]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
    [4.331661]
    [4.331717]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 908
    [4.333257][4.19173:19237]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
    [4.333257]
    [4.333319]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 921
    [4.333672][4.19238:19296]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.333672]
    [4.333728]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 933
    [4.334100][4.19297:19367]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie0")?;
    [4.334100]
    [4.334168]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 948
    [4.334486][4.19368:19432]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.334486]
    [4.334548]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 956
    [4.334772][4.19433:19491]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.334772]
    [4.334828]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 971
    [4.335128][4.19492:19562]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie1")?;
    [4.335128]
    [4.335196]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 976
    [4.335408][4.19563:19627]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.335408]
    [4.335470]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 986
    [4.335679][4.19628:19692]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
    [4.335679]
    [4.335741]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1013
    [4.336549][4.19693:19757]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
    [4.336549]
    [4.336611]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1018
    [4.336787][4.19758:19816]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.336787]
    [4.336843]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1027
    [4.337024][4.19817:19875]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.337024]
    [4.337080]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1035
    [4.337359][4.19876:19934]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
    [4.337359]
    [4.337415]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1050
    [4.337794][4.19935:20005]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie2")?;
    [4.337794]
    [4.337862]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1053
    [4.337993][4.20006:20076]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie3")?;
    [4.337993]
    [4.338061]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1074
    [4.338627][4.20077:20147]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie4")?;
    [4.338627]
    [4.338695]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie4")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1119
    [4.340070][4.20148:20212]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
    [4.340070]
    [4.340132]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1130
    [4.340386][4.20213:20277]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.340386]
    [4.340448]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1143
    [4.340790][4.20278:20336]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.340790]
    [4.340846]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1149
    [4.341097][4.20337:20395]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.341097]
    [4.341153]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1168
    [4.341724][4.20396:20454]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.341724]
    [4.341780]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1193
    [4.342516][4.20455:20519]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
    [4.342516]
    [4.342578]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1210
    [4.343185][4.20520:20590]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie0")?;
    [4.343185]
    [4.343253]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie0")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1225
    [4.343617][4.20591:20661]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie1")?;
    [4.343617]
    [4.343685]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie1")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1230
    [4.343784][4.20662:20732]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie2")?;
    [4.343784]
    [4.5993]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie2")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1239
    [4.343996][4.20733:20803]()
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie3")?;
    [4.343996]
    [4.344064]
    debug_to_file(&txn_charlie, &channel_charlie.borrow(), "debug_charlie3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1257
    [4.344734][4.20804:20868]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
    [4.344734]
    [4.344796]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1274
    [4.345303][4.20869:20927]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
    [4.345303]
    [4.345359]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3")?;
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1338
    [4.347196][4.20928:21000]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1").unwrap();
    [4.347196]
    [4.347284]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1343
    [4.347449][4.21001:21067]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
    [4.347449]
    [4.347513]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1350
    [4.347680][4.21068:21134]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1").unwrap();
    [4.347680]
    [4.347744]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1372
    [4.348464][4.21135:21201]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2").unwrap();
    [4.348464]
    [4.348528]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1390
    [4.349057][4.21202:21274]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2").unwrap();
    [4.349057]
    [4.349057]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1416
    [4.349775][4.21275:21347]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3").unwrap();
    [4.349775]
    [4.349863]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1473
    [4.351489][4.21348:21420]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1").unwrap();
    [4.351489]
    [4.351577]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1482
    [4.351848][4.21421:21487]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
    [4.351848]
    [4.351912]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1485
    [4.352051][4.21488:21554]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1").unwrap();
    [4.352051]
    [4.352115]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1492
    [4.352375][4.21555:21627]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2").unwrap();
    [4.352375]
    [4.352375]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1497
    [4.352587][4.21628:21700]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3").unwrap();
    [4.352587]
    [4.352587]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1508
    [4.352920][4.21772:21844]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice4").unwrap();
    [4.352920]
    [4.353008]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice4").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1570
    [4.354798][4.21845:21917]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1").unwrap();
    [4.354798]
    [4.354886]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1575
    [4.355049][4.21918:21984]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
    [4.355049]
    [4.355113]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1582
    [4.355280][4.21985:22051]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1").unwrap();
    [4.355280]
    [4.355344]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1598
    [4.355858][4.22052:22118]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2").unwrap();
    [4.355858]
    [4.355922]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1616
    [4.356363][4.22119:22191]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2").unwrap();
    [4.356363]
    [4.356451]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/file_conflicts.rs at line 1642
    [4.357162][4.22192:22264]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3").unwrap();
    [4.357162]
    [4.357250]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice3").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 20
    [4.358102][4.22265:22329]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.358102]
    [4.358164]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 46
    [4.358871][4.22330:22456]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.358871]
    [4.358993]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 49
    [4.359079][4.22457:22519]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.359079]
    [4.359139]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 57
    [4.359364][4.22520:22586]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.359364]
    [4.359428]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 98
    [4.360591][4.22587:22653]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.360591]
    [4.360655]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 116
    [4.361279][4.22654:22720]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.361279]
    [4.361343]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 128
    [4.361620][4.22721:22783]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.361620]
    [4.361680]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 143
    [4.362051][4.22784:22846]()
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
    [4.362051]
    [4.362111]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 149
    [4.362334][4.22847:22909]()
    debug_to_file(&txn, &channel_bob, "debug_bob3").unwrap();
    [4.362334]
    [4.362394]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob3").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 181
    [4.363390][4.22910:22974]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.363390]
    [4.363452]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 220
    [4.364561][4.22975:23101]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.364561]
    [4.364683]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 223
    [4.364769][4.23102:23164]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.364769]
    [4.364829]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 237
    [4.365113][4.23165:23235]()
    debug_to_file(&txn, &channel_charlie, "debug_charlie0").unwrap();
    [4.365113]
    [4.365190]
    debug_to_file(&txn, &channel_charlie.borrow(), "debug_charlie0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 245
    [4.365415][4.23236:23302]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.365415]
    [4.365479]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 284
    [4.366623][4.23303:23369]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.366623]
    [4.366687]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 298
    [4.367183][4.23370:23436]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.367183]
    [4.367247]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 311
    [4.367607][4.23437:23499]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.367607]
    [4.367667]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 367
    [4.369361][4.23500:23570]()
    debug_to_file(&txn, &channel_charlie, "debug_charlie1").unwrap();
    [4.369361]
    [4.369438]
    debug_to_file(&txn, &channel_charlie.borrow(), "debug_charlie1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 409
    [4.370710][4.23571:23635]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.370710]
    [4.370772]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 430
    [4.371322][4.23636:23762]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.371322]
    [4.371444]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 433
    [4.371530][4.23763:23825]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.371530]
    [4.371590]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 441
    [4.371815][4.23826:23892]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.371815]
    [4.371879]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 453
    [4.372152][4.23893:23959]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.372152]
    [4.372216]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 480
    [4.373139][4.23960:24026]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.373139]
    [4.373203]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 492
    [4.373480][4.24027:24089]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.373480]
    [4.373540]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 505
    [4.373859][4.24090:24152]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.373859]
    [4.373919]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 529
    [4.374669][4.24153:24217]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.374669]
    [4.374731]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 549
    [4.375213][4.24218:24344]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.375213]
    [4.375335]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 552
    [4.375417][4.24345:24407]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.375417]
    [4.375477]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 560
    [4.375690][4.24408:24474]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.375690]
    [4.375754]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 603
    [4.376977][4.24475:24541]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.376977]
    [4.377041]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 617
    [4.377440][4.24542:24608]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.377440]
    [4.377504]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 658
    [4.378867][4.24609:24673]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.378867]
    [4.378929]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 678
    [4.379411][4.24674:24800]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.379411]
    [4.379533]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 681
    [4.379615][4.24801:24863]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.379615]
    [4.379675]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 689
    [4.379888][4.24864:24930]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.379888]
    [4.379952]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 719
    [4.380818][4.24931:24997]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.380818]
    [4.380882]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 734
    [4.381282][4.24998:25064]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.381282]
    [4.381346]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 778
    [4.382757][4.25065:25129]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.382757]
    [4.382819]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 857
    [4.385097][4.25130:25196]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.385097]
    [4.385161]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 872
    [4.385565][4.25197:25263]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.385565]
    [4.385629]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 888
    [4.386081][4.25264:25325]()
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.386081]
    [4.386140]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 917
    [4.387079][4.25326:25390]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.387079]
    [4.387141]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 942
    [4.387847][4.25391:25517]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.387847]
    [4.387969]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 945
    [4.388055][4.25518:25580]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.388055]
    [4.388115]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 953
    [4.388340][4.25581:25647]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.388340]
    [4.388404]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 988
    [4.389412][4.25648:25714]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.389412]
    [4.389476]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1003
    [4.389959][4.25715:25781]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.389959]
    [4.390023]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1015
    [4.390300][4.25782:25844]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.390300]
    [4.390360]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1021
    [4.390532][4.25845:25907]()
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
    [4.390532]
    [4.390592]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1053
    [4.391530][4.25908:25972]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.391530]
    [4.391592]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1078
    [4.392298][4.25973:26099]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.392298]
    [4.392420]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1081
    [4.392506][4.26100:26162]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.392506]
    [4.392566]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1089
    [4.392791][4.26163:26229]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.392791]
    [4.392855]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1116
    [4.393580][4.26230:26296]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.393580]
    [4.393644]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1144
    [4.394353][4.26297:26363]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.394353]
    [4.394417]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1156
    [4.394694][4.26364:26426]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.394694]
    [4.394754]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1162
    [4.394926][4.26427:26489]()
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
    [4.394926]
    [4.394986]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1297
    [4.399148][4.26490:26554]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.399148]
    [4.399210]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1322
    [4.399916][4.26555:26681]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.399916]
    [4.400038]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1325
    [4.400124][4.26682:26744]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.400124]
    [4.400184]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1333
    [4.400409][4.26745:26811]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.400409]
    [4.400473]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1348
    [4.400822][4.26812:26878]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.400822]
    [4.400886]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1358
    [4.401157][4.26879:26945]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.401157]
    [4.401221]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1370
    [4.401498][4.26946:27008]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.401498]
    [4.401558]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1385
    [4.401918][4.27009:27071]()
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
    [4.401918]
    [4.401978]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1417
    [4.403007][4.27072:27136]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.403007]
    [4.403069]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1443
    [4.403776][4.27137:27263]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.403776]
    [4.403898]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1446
    [4.403984][4.27264:27326]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.403984]
    [4.404044]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1455
    [4.404298][4.27327:27393]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.404298]
    [4.404362]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1468
    [4.404664][4.27394:27460]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.404664]
    [4.404728]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1480
    [4.405144][4.27461:27527]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.405144]
    [4.405208]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1504
    [4.405866][4.27528:27590]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.405866]
    [4.405926]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1518
    [4.406281][4.27591:27657]()
    debug_to_file(&txn, &channel_alice, "debug_alice3").unwrap();
    [4.406281]
    [4.406345]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice3").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1594
    [4.408728][4.27658:27715]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob")?;
    [4.408728]
    [4.408783]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob")?;
  • replacement in libpijul/src/tests/conflict.rs at line 1604
    [4.409102][4.27716:27774]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.409102]
    [4.409158]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/conflict.rs at line 1610
    [4.409393][4.27775:27852]()
    debug_to_file(&txn_bob, &channel_bob, &format!("debug_bob_{}", n))?;
    [4.409393]
    [4.27852]
    debug_to_file(&txn_bob, &channel_bob.borrow(), &format!("debug_bob_{}", n))?;
  • replacement in libpijul/src/tests/conflict.rs at line 1637
    [4.410117][4.27916:27974]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.410117]
    [4.410173]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/conflict.rs at line 1653
    [4.410568][4.28018:28082]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    [4.410568]
    [4.410630]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice1")?;
  • replacement in libpijul/src/tests/conflict.rs at line 1677
    [4.411286][4.28083:28147]()
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
    [4.411286]
    [4.411348]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_alice2")?;
  • replacement in libpijul/src/tests/conflict.rs at line 1741
    [4.413431][4.28148:28206]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
    [4.413431]
    [4.413487]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0")?;
  • replacement in libpijul/src/tests/conflict.rs at line 1747
    [4.413655][4.28207:28265]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
    [4.413655]
    [4.413711]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1")?;
  • replacement in libpijul/src/tests/conflict.rs at line 1756
    [4.413876][4.28266:28325]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1_")?;
    [4.413876]
    [4.413933]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1_")?;
  • replacement in libpijul/src/tests/conflict.rs at line 1778
    [4.414531][4.28326:28384]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    [4.414531]
    [4.414587]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2")?;
  • replacement in libpijul/src/tests/conflict.rs at line 1819
    [4.415984][4.28385:28449]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.415984]
    [4.416046]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1859
    [4.417248][4.28450:28516]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.417248]
    [4.417312]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1867
    [4.417528][4.28517:28579]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.417528]
    [4.417588]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1881
    [4.417864][4.28580:28650]()
    debug_to_file(&txn, &channel_charlie, "debug_charlie0").unwrap();
    [4.417864]
    [4.417941]
    debug_to_file(&txn, &channel_charlie.borrow(), "debug_charlie0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1896
    [4.418344][4.28651:28717]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.418344]
    [4.418408]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1910
    [4.418773][4.28718:28784]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.418773]
    [4.418837]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1915
    [4.419036][4.28785:28847]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.419036]
    [4.419096]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1926
    [4.419346][4.28848:28918]()
    debug_to_file(&txn, &channel_charlie, "debug_charlie1").unwrap();
    [4.419346]
    [4.419423]
    debug_to_file(&txn, &channel_charlie.borrow(), "debug_charlie1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1928
    [4.419500][4.28919:28989]()
    debug_to_file(&txn, &channel_charlie, "debug_charlie2").unwrap();
    [4.419500]
    [4.419577]
    debug_to_file(&txn, &channel_charlie.borrow(), "debug_charlie2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1930
    [4.419657][4.28990:29060]()
    debug_to_file(&txn, &channel_charlie, "debug_charlie3").unwrap();
    [4.419657]
    [4.419734]
    debug_to_file(&txn, &channel_charlie.borrow(), "debug_charlie3").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 1953
    [4.420507][4.29061:29125]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.420507]
    [4.420569]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2009
    [4.422179][4.29126:29252]()
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
    [4.422179]
    [4.422301]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2012
    [4.422387][4.29253:29315]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.422387]
    [4.422447]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2020
    [4.422672][4.29316:29382]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.422672]
    [4.422736]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2035
    [4.423138][4.29383:29449]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.423138]
    [4.423202]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2050
    [4.423635][4.29450:29516]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.423635]
    [4.423699]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2062
    [4.423976][4.29517:29579]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.423976]
    [4.424036]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2082
    [4.424778][4.29580:29642]()
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
    [4.424778]
    [4.424838]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2092
    [4.425030][4.29643:29705]()
    debug_to_file(&txn, &channel_bob, "debug_bob3").unwrap();
    [4.425030]
    [4.425090]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob3").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2120
    [4.425982][4.29706:29768]()
    debug_to_file(&txn, &channel_bob, "debug_bob4").unwrap();
    [4.425982]
    [4.426042]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob4").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2135
    [4.426430][4.29769:29831]()
    debug_to_file(&txn, &channel_bob, "debug_bob5").unwrap();
    [4.426430]
    [4.426490]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob5").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2167
    [4.427543][4.29832:29896]()
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
    [4.427543]
    [4.427605]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2204
    [4.428769][4.29897:29959]()
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
    [4.428769]
    [4.428829]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2222
    [4.429445][4.29960:30026]()
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
    [4.429445]
    [4.429509]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2239
    [4.430060][4.30027:30093]()
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
    [4.430060]
    [4.430124]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2254
    [4.430557][4.30094:30160]()
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
    [4.430557]
    [4.430621]
    debug_to_file(&txn, &channel_alice.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2268
    [4.431063][4.30161:30223]()
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
    [4.431063]
    [4.431123]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2317
    [4.432904][4.30224:30286]()
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
    [4.432904]
    [4.432964]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2327
    [4.433156][4.30287:30349]()
    debug_to_file(&txn, &channel_bob, "debug_bob3").unwrap();
    [4.433156]
    [4.433216]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob3").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2334
    [4.433434][4.30350:30412]()
    debug_to_file(&txn, &channel_bob, "debug_bob4").unwrap();
    [4.433434]
    [3.28828]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob4").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2351
    [4.433926][4.30477:30539]()
    debug_to_file(&txn, &channel_bob, "debug_bob5").unwrap();
    [4.433926]
    [3.28908]
    debug_to_file(&txn, &channel_bob.borrow(), "debug_bob5").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2368
    [4.434661][4.30602:30671]()
    debug_to_file(&txn, &channel_charlie, "debug_charlie").unwrap();
    [4.434661]
    [3.28986]
    debug_to_file(&txn, &channel_charlie.borrow(), "debug_charlie").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2384
    [4.435146][4.30738:30808]()
    debug_to_file(&txn, &channel_charlie, "debug_charlie1").unwrap();
    [4.435146]
    [4.435223]
    debug_to_file(&txn, &channel_charlie.borrow(), "debug_charlie1").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2423
    [4.436405][4.30876:30946]()
    debug_to_file(&txn_alice, &channel_alice, "debug_init").unwrap();
    [4.436405]
    [4.436491]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2452
    [4.437394][4.30947:31012]()
    debug_to_file(&txn_alice, &channel_alice, "debug").unwrap();
    [4.437394]
    [4.437457]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2480
    [4.438158][4.31084:31150]()
    debug_to_file(&txn_alice, &channel_alice, "debug2").unwrap();
    [4.438158]
    [4.438222]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug2").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2510
    [4.439178][4.31151:31221]()
    debug_to_file(&txn_alice, &channel_alice, "debug_init").unwrap();
    [4.439178]
    [4.439264]
    debug_to_file(&txn_alice, &channel_alice.borrow(), "debug_init").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2531
    [4.439914][4.31222:31288]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
    [4.439914]
    [4.439978]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob0").unwrap();
  • replacement in libpijul/src/tests/conflict.rs at line 2548
    [4.440325][4.3250:3313]()
    fn check_tree_inodes<T: TxnT>(txn: &T, channel: &Channel<T>) {
    [4.440325]
    [4.440394]
    fn check_tree_inodes<T: TxnT>(txn: &T, channel: &T::Channel) {
  • replacement in libpijul/src/tests/conflict.rs at line 2562
    [4.440857][3.29395:29471]()
    if !is_alive(txn, &channel.graph, vertex.inode_vertex()).unwrap() {
    [4.440857]
    [4.31350]
    if !is_alive(txn, T::graph(&channel), vertex.inode_vertex()).unwrap() {
  • replacement in libpijul/src/tests/conflict.rs at line 2565
    [4.31407][3.29472:29504]()
    &channel.graph,
    [4.31407]
    [4.440983]
    T::graph(&channel),
  • replacement in libpijul/src/tests/clone.rs at line 23
    [4.442197][4.31448:31506]()
    debug_to_file(&txn, &channel, "debug0").unwrap();
    [4.442197]
    [2.7480]
    debug_to_file(&txn, &channel.borrow(), "debug0").unwrap();
  • replacement in libpijul/src/tests/clone.rs at line 30
    [4.442486][4.31507:31565]()
    debug_to_file(&txn, &channel, "debug1").unwrap();
    [4.442486]
    [4.442542]
    debug_to_file(&txn, &channel.borrow(), "debug1").unwrap();
  • replacement in libpijul/src/tests/clone.rs at line 55
    [4.443325][4.31566:31629]()
    debug_to_file(&txn2, &channel, "debug2").unwrap();
    [4.443325]
    [4.443386]
    debug_to_file(&txn2, &channel.borrow(), "debug2").unwrap();
  • replacement in libpijul/src/tests/change.rs at line 80
    [4.448856][4.31630:31675]()
    debug_to_file(&txn, &channel, "debug")?;
    [4.448856]
    [4.448899]
    debug_to_file(&txn, &channel.borrow(), "debug")?;
  • replacement in libpijul/src/tests/add_file.rs at line 23
    [4.454845][4.31676:31733]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.454845]
    [4.454900]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 52
    [3.30657][4.31734:31793](),[4.455902][4.31734:31793]()
    debug_to_file(&txn, &channel_, "debug2").unwrap();
    [3.30657]
    [4.455959]
    debug_to_file(&txn, &channel_.borrow(), "debug2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 112
    [4.457793][4.31832:31890]()
    debug_to_file(&txn, &channel, "debug0").unwrap();
    [4.457793]
    [4.457849]
    debug_to_file(&txn, &channel.borrow(), "debug0").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 128
    [4.458397][4.31891:31948]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.458397]
    [4.458452]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 170
    [4.3471][4.3471:3525]()
    debug_to_file(&txn, &channel, "debug0").unwrap();
    [4.3471]
    [4.3525]
    debug_to_file(&txn, &channel.borrow(), "debug0").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 179
    [4.3866][4.3866:3919]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.3866]
    [4.3919]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 208
    [4.459818][4.31949:32002]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.459818]
    [4.459869]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 218
    [4.460193][4.32003:32056]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.460193]
    [4.460244]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 248
    [4.461136][4.32057:32111]()
    debug_to_file(&txn, &channel, "debug0").unwrap();
    [4.461136]
    [4.461188]
    debug_to_file(&txn, &channel.borrow(), "debug0").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 250
    [4.461261][4.32112:32166]()
    debug_to_file(&txn, &channel, "debug1").unwrap();
    [4.461261]
    [2.8071]
    debug_to_file(&txn, &channel.borrow(), "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 259
    [4.461628][4.32167:32221]()
    debug_to_file(&txn, &channel, "debug2").unwrap();
    [4.461628]
    [4.461680]
    debug_to_file(&txn, &channel.borrow(), "debug2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 280
    [4.462344][4.32222:32282]()
    debug_to_file(&txn_alice, &channel, "debug0").unwrap();
    [4.462344]
    [4.462402]
    debug_to_file(&txn_alice, &channel.borrow(), "debug0").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 284
    [4.462542][4.32283:32343]()
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
    [4.462542]
    [4.462600]
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 299
    [4.463066][4.32344:32406]()
    debug_to_file(&txn_bob, &channel, "debug_bob1").unwrap();
    [4.463066]
    [4.463126]
    debug_to_file(&txn_bob, &channel.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 312
    [4.463447][4.32407:32469]()
    debug_to_file(&txn_bob, &channel, "debug_bob2").unwrap();
    [4.463447]
    [4.463507]
    debug_to_file(&txn_bob, &channel.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 337
    [4.464408][4.32470:32530]()
    debug_to_file(&txn_alice, &channel, "debug0").unwrap();
    [4.464408]
    [4.464466]
    debug_to_file(&txn_alice, &channel.borrow(), "debug0").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 346
    [4.464790][4.32575:32635]()
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
    [4.464790]
    [4.32635]
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 354
    [4.465117][4.32709:32769]()
    debug_to_file(&txn_alice, &channel, "debug2").unwrap();
    [4.465117]
    [4.465175]
    debug_to_file(&txn_alice, &channel.borrow(), "debug2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 420
    [4.467237][4.32770:32830]()
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
    [4.467237]
    [4.467295]
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 455
    [4.468380][4.32831:32891]()
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
    [4.468380]
    [4.468438]
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 461
    [4.468631][4.32892:32952]()
    debug_to_file(&txn_alice, &channel, "debug2").unwrap();
    [4.468631]
    [4.468689]
    debug_to_file(&txn_alice, &channel.borrow(), "debug2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 481
    [4.469355][4.32953:33019]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1").unwrap();
    [4.469355]
    [4.469419]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 485
    [4.469508][4.33020:33086]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2").unwrap();
    [4.469508]
    [4.469572]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 498
    [4.469859][4.33087:33153]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3").unwrap();
    [4.469859]
    [4.469923]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 511
    [4.470249][4.33154:33224]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob4").unwrap();
    [4.470249]
    [4.470317]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob4").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 517
    [4.470453][4.33225:33295]()
    debug_to_file(&txn_alice, &channel, "debug_alice2").unwrap();
    [4.470453]
    [4.470521]
    debug_to_file(&txn_alice, &channel.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 534
    [4.470962][4.33296:33366]()
    debug_to_file(&txn_alice, &channel, "debug_alice3").unwrap();
    [4.470962]
    [4.471030]
    debug_to_file(&txn_alice, &channel.borrow(), "debug_alice3").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 555
    [4.471587][4.33367:33437]()
    debug_to_file(&txn_bob, &channel_bob, "debug_bob4").unwrap();
    [4.471587]
    [4.471655]
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob4").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 575
    [4.472223][4.33438:33508]()
    debug_to_file(&txn_alice, &channel, "debug_alice2").unwrap();
    [4.472223]
    [4.472291]
    debug_to_file(&txn_alice, &channel.borrow(), "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 641
    [4.474394][4.33509:33569]()
    debug_to_file(&txn_alice, &channel, "debug0").unwrap();
    [4.474394]
    [4.474452]
    debug_to_file(&txn_alice, &channel.borrow(), "debug0").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 651
    [4.474853][4.33570:33630]()
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
    [4.474853]
    [4.474911]
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 660
    [4.475076][4.33631:33691]()
    debug_to_file(&txn_alice, &channel, "debug2").unwrap();
    [4.475076]
    [4.475134]
    debug_to_file(&txn_alice, &channel.borrow(), "debug2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 718
    [4.476583][4.33692:33752]()
    debug_to_file(&txn_alice, &channel, "debug3").unwrap();
    [4.476583]
    [4.476641]
    debug_to_file(&txn_alice, &channel.borrow(), "debug3").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 754
    [4.477781][4.33818:33871]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.477781]
    [4.477832]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 772
    [4.478347][4.33872:33929]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.478347]
    [4.478402]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 793
    [4.479051][4.33930:33987]()
    debug_to_file(&txn, &channel, "debug").unwrap();
    [4.479051]
    [4.479106]
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
  • replacement in libpijul/src/record.rs at line 152
    [3.32184][3.32184:32210]()
    channel: &Channel<T>,
    [3.32184]
    [3.32210]
    channel: &T::Channel,
  • replacement in libpijul/src/record.rs at line 157
    [4.492412][3.32351:32418]()
    .get_changeset(&channel.changes, vertex.change, None)?
    [4.492412]
    [4.492478]
    .get_changeset(T::changes(channel), vertex.change)?
  • replacement in libpijul/src/record.rs at line 170
    [4.492630][3.32489:32550]()
    pub(crate) fn record<T, W: WorkingCopy, C: ChangeStore>(
    [4.492630]
    [4.492700]
    pub fn record<T, W: WorkingCopy, C: ChangeStore>(
  • replacement in libpijul/src/record.rs at line 174
    [4.492781][3.32551:32585]()
    channel: &mut Channel<T>,
    [4.492781]
    [4.492818]
    channel: &mut T::Channel,
  • replacement in libpijul/src/record.rs at line 180
    [3.32664][3.32664:32756]()
    T: ChannelTxnT + TreeTxnT<TreeError = <T as GraphTxnT>::GraphError> + GraphMutTxnT,
    [3.32664]
    [3.32756]
    T: ChannelMutTxnT + TreeTxnT<TreeError = <T as GraphTxnT>::GraphError>,
  • replacement in libpijul/src/record.rs at line 196
    [4.493559][3.32807:32843]()
    &channel.graph,
    [4.493559]
    [4.493589]
    T::graph(channel),
  • replacement in libpijul/src/record.rs at line 335
    [3.32977][3.32977:33054]()
    T: ChannelTxnT + TreeTxnT<TreeError = <T as GraphTxnT>::GraphError>,
    [3.32977]
    [3.33054]
    T: ChannelMutTxnT + TreeTxnT<TreeError = <T as GraphTxnT>::GraphError>,
  • replacement in libpijul/src/record.rs at line 342
    [4.499537][4.499537:499567]()
    channel: &Channel<T>,
    [4.499537]
    [4.499567]
    channel: &T::Channel,
  • replacement in libpijul/src/record.rs at line 360
    [4.500045][3.33260:33350]()
    for name_ in iter_adjacent(txn, &channel.graph, vertex.inode_vertex(), f0, f1)? {
    [4.500045]
    [3.33350]
    for name_ in iter_adjacent(txn, T::graph(channel), vertex.inode_vertex(), f0, f1)? {
  • replacement in libpijul/src/record.rs at line 371
    [4.500452][3.33480:33566]()
    let name_dest = find_block_end(txn, &channel.graph, name_.dest).unwrap();
    [4.500452]
    [4.500531]
    let name_dest = txn.find_block_end(T::graph(channel), name_.dest).unwrap();
  • replacement in libpijul/src/record.rs at line 380
    [4.500926][3.33654:33752]()
    if let Some(v_papa) = iter_adjacent(txn, &channel.graph, name_dest, f0, f1)?.next() {
    [4.500926]
    [3.33752]
    if let Some(v_papa) = iter_adjacent(txn, T::graph(channel), name_dest, f0, f1)?.next() {
  • replacement in libpijul/src/record.rs at line 408
    [4.502086][3.33843:33879]()
    &channel.graph,
    [4.502086]
    [4.502116]
    T::graph(channel),
  • replacement in libpijul/src/record.rs at line 417
    [4.502359][4.502359:502452]()
    || modified_since_last_commit(&channel, working_copy, &item.full_path)?)
    [4.502359]
    [4.502452]
    || modified_since_last_commit::<T, _>(&channel, working_copy, &item.full_path)?)
  • replacement in libpijul/src/record.rs at line 419
    [4.502466][3.33900:33970]()
    let mut ret = retrieve(txn, &channel.graph, vertex)?;
    [4.502466]
    [4.502529]
    let mut ret = retrieve(txn, T::graph(channel), vertex)?;
  • replacement in libpijul/src/record.rs at line 444
    [4.503210][3.33971:34069]()
    self.record_deleted_file(txn, &channel.graph, working_copy, &item.full_path, vertex)?
    [4.503210]
    [4.503301]
    self.record_deleted_file(
    txn,
    T::graph(channel),
    working_copy,
    &item.full_path,
    vertex,
    )?
  • replacement in libpijul/src/record.rs at line 476
    [3.34395][3.34395:34466]()
    let child = find_block(txn, channel, child.dest).unwrap();
    [3.34395]
    [3.34466]
    let child = txn.find_block(channel, child.dest).unwrap();
  • replacement in libpijul/src/record.rs at line 527
    [4.504737][4.504737:504767]()
    channel: &Channel<T>,
    [4.504737]
    [4.504767]
    channel: &T::Channel,
  • replacement in libpijul/src/record.rs at line 576
    [3.35616][3.35616:35713]()
    self.record_deleted_file(txn, &channel.graph, working_copy, &full_path, vertex)?
    [3.35616]
    [4.506617]
    self.record_deleted_file(txn, T::graph(channel), working_copy, &full_path, vertex)?
  • replacement in libpijul/src/record.rs at line 588
    [3.35777][4.506966:506992](),[4.506966][4.506966:506992]()
    channel: &Channel<T>,
    [3.35777]
    [4.506992]
    channel: &T::Channel,
  • replacement in libpijul/src/record.rs at line 598
    [4.507318][4.507318:507352]()
    channel.last_modified
    [4.507318]
    [4.507352]
    T::last_modified(channel)
  • replacement in libpijul/src/record.rs at line 604
    [4.507479][4.507479:507517]()
    >= channel.last_modified)
    [4.507479]
    [4.507517]
    >= T::last_modified(channel))
  • replacement in libpijul/src/record.rs at line 756
    [4.512793][3.36471:36549]()
    let parent_dest = find_block_end(txn, channel, parent.dest).unwrap();
    [4.512793]
    [3.36549]
    let parent_dest = txn.find_block_end(channel, parent.dest).unwrap();
  • replacement in libpijul/src/record.rs at line 788
    [4.513816][3.37062:37154]()
    let grandparent_dest = find_block_end(txn, channel, grandparent.dest).unwrap();
    [4.513816]
    [4.513908]
    let grandparent_dest = txn.find_block_end(channel, grandparent.dest).unwrap();
  • replacement in libpijul/src/record.rs at line 946
    [4.520594][4.35380:35407](),[4.35407][3.37738:37837]()
    let dest =
    find_block(txn, channel, edge.dest).expect("delete_recursively, descendants");
    [4.520594]
    [4.520742]
    let dest = txn
    .find_block(channel, edge.dest)
    .expect("delete_recursively, descendants");
  • replacement in libpijul/src/record.rs at line 988
    [4.35884][3.38118:38200]()
    let parent_dest = find_block_end(txn, channel, parent.dest).unwrap();
    [4.35884]
    [4.35967]
    let parent_dest = txn.find_block_end(channel, parent.dest).unwrap();
  • replacement in libpijul/src/record.rs at line 1069
    [4.524909][4.524909:524978]()
    flag: EdgeFlags::DELETED | EdgeFlags::BLOCK,
    [4.524909]
    [4.524978]
    flag: (parent.flag - EdgeFlags::PARENT) | EdgeFlags::DELETED,
  • file deletion: block.rs (-xw-x--x--)block.rs (-xw-x--x--)
    [4.525229][4.0:10](),[4.10][4.11:11](),[4.525229][4.0:10]()
    }
    }
    use super::*;
    /// Find the key where a position is.
    txn: &'txn T,
    p: Position<ChangeId>,
    if p.change.is_root() {
    return Ok(Vertex::ROOT);
    }
    let key = Vertex {
    change: p.change,
    start: p.pos,
    end: p.pos,
    };
    debug!(target: "libpijul::find_block", "find_block {:?}", key);
    } else {
    };
    debug!("k = {:?}", k);
    // The only guarantee here is that k is either the first key
    // >= `key`, or the key just before that. We might need to
    // rewind by one step if key is strictly larger than the
    // result (i.e. if `p` is in the middle of the key).
    while k.change > p.change || (k.change == p.change && k.start > p.pos) {
    debug!(target: "libpijul::find_block", "find_block while {:?}", k);
    } else {
    break;
    }
    }
    loop {
    debug!(target: "libpijul::find_block", "find_block loop {:?}", k);
    if k.change == p.change && k.start <= p.pos {
    if k.end > p.pos || (k.start == k.end && k.end == p.pos) {
    return Ok(k);
    }
    } else if k.change > p.change {
    }
    } else {
    break;
    }
    }
    debug!(target: "libpijul::find_block", "find_block None, {:?}", k);
    }
    /// Find the key ending at a position.
    txn: &'txn T,
    p: Position<ChangeId>,
    if p.change.is_root() {
    return Ok(Vertex::ROOT);
    }
    let key = Vertex {
    change: p.change,
    start: p.pos,
    end: p.pos,
    };
    debug!(target: "libpijul::find_block_end", "find_block_end {:?}, p.change.0 = {:?}", key, p.change.0);
    } else {
    };
    // The only guarantee here is that k is either the first key
    // before `key`, or the key just before that.
    loop {
    debug!(target: "libpijul::find_block_end", "find_block_end loop {:?} k.change.0 = {:?}", k, k.change.0);
    if k.change < p.change {
    break;
    } else if k.change == p.change {
    // Here we want to create an edge pointing between `p`
    // and its successor. If k.start == p.pos, the only
    // case where that's what we want is if k.start ==
    // k.end.
    break;
    }
    }
    } else {
    break;
    }
    }
    // We also want k.end >= p.pos, so we just call next() until
    // we have that.
    debug!(target: "libpijul::find_block_end", "find_block_end k(0) = {:?} k.change.0 = {:?}", k, k.change.0);
    while k.change < p.change || (k.change == p.change && p.pos > k.end) {
    } else {
    break;
    }
    }
    debug!(target: "libpijul::find_block_end", "find_block_end k(1) = {:?}, k.change.0 = {:?}", k, k.change.0);
    if k.change == p.change && k.start <= p.pos && p.pos <= k.end {
    Ok(k)
    } else {
    Err(BlockError::Block { block: p })
    if let Some(k_) = cursor.next() {
    k = k_?.0
    if let Some(k_) = cursor.prev() {
    k = k_?.0
    if k.start == p.pos && k.end == p.pos || k.start < p.pos {
    return Err(BlockError::Block { block: p });
    let mut cursor = txn.cursor_graph(graph, Some((key, None)))?;
    let mut k = if let Some(k) = cursor.next() {
    k?.0
    ) -> Result<Vertex<ChangeId>, BlockError<T::GraphError>> {
    graph: &'db T::Graph,
    pub(crate) fn find_block_end<'db, 'txn: 'db, T: GraphTxnT>(
    Err(BlockError::Block { block: p })
    if let Some(k_) = cursor.next() {
    k = k_?.0
    return Err(BlockError::Block { block: p });
    if let Some(k_) = cursor.prev() {
    k = k_?.0
    return Err(BlockError::Block { block: p });
    let mut cursor = txn.cursor_graph(graph, Some((key, None)))?;
    let mut k = if let Some(k) = cursor.next() {
    k?.0
    ) -> Result<Vertex<ChangeId>, BlockError<T::GraphError>> {
    graph: &'db T::Graph,
    pub(crate) fn find_block<'db, 'txn: 'db, T: GraphTxnT>(
    #[derive(Debug, Error)]
    }
    pub enum BlockError<T: std::error::Error + 'static> {
    #[error(transparent)]
    Txn(T),
    #[error("Block error: {:?}", block)]
    Block { block: Position<ChangeId> },
    }
    impl<T: std::error::Error + 'static> std::convert::From<TxnErr<T>> for BlockError<T> {
    fn from(e: TxnErr<T>) -> Self {
    BlockError::Txn(e.0)
    }
  • replacement in libpijul/src/pristine/sanakirja.rs at line 3
    [4.531151][4.531151:531171]()
    use ::sanakirja::*;
    [4.531151]
    [4.531171]
    use ::sanakirja::{Alignment, Commit, Db, Representable, Transaction, UnsafeDb};
  • replacement in libpijul/src/pristine/sanakirja.rs at line 62
    [4.13187][4.83:138](),[4.531860][4.83:138]()
    let env = sanakirja::Env::try_new(name, size);
    [4.13187]
    [4.138]
    let env = ::sanakirja::Env::try_new(name, size);
  • replacement in libpijul/src/pristine/sanakirja.rs at line 65
    [4.218][4.218:264]()
    Err(sanakirja::Error::IO(e)) => {
    [4.218]
    [4.264]
    Err(::sanakirja::Error::IO(e)) => {
  • replacement in libpijul/src/pristine/sanakirja.rs at line 69
    [4.417][4.13245:13321]()
    Err(SanakirjaError::Sanakirja(sanakirja::Error::IO(e)))
    [4.417]
    [4.451]
    Err(SanakirjaError::Sanakirja(::sanakirja::Error::IO(e)))
  • replacement in libpijul/src/pristine/sanakirja.rs at line 80
    [4.532113][4.532113:532181]()
    env: Arc::new(sanakirja::Env::new_nolock(name, size)?),
    [4.532113]
    [4.532181]
    env: Arc::new(::sanakirja::Env::new_nolock(name, size)?),
  • replacement in libpijul/src/pristine/sanakirja.rs at line 88
    [4.532397][4.532397:532457]()
    env: Arc::new(sanakirja::Env::new_anon(size)?),
    [4.532397]
    [4.532457]
    env: Arc::new(::sanakirja::Env::new_anon(size)?),
  • replacement in libpijul/src/pristine/sanakirja.rs at line 95
    [4.532533][4.532533:532545]()
    enum Root {
    [4.532533]
    [4.532545]
    pub enum Root {
  • replacement in libpijul/src/pristine/sanakirja.rs at line 217
    [4.537041][4.537041:537121]()
    txn: T,
    internal: Db<Hash, ChangeId>,
    external: Db<ChangeId, Hash>,
    [4.537041]
    [4.537121]
    #[doc(hidden)]
    pub txn: T,
    #[doc(hidden)]
    pub internal: Db<Hash, ChangeId>,
    #[doc(hidden)]
    pub external: Db<ChangeId, Hash>,
  • edit in libpijul/src/pristine/sanakirja.rs at line 363
    [3.39918][4.542345:542403](),[4.542345][4.542345:542403]()
    sanakirja_cursor_ref!(graph, Vertex<ChangeId>, Edge);
  • edit in libpijul/src/pristine/sanakirja.rs at line 379
    [3.40473]
    [4.542811]
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    type Adj = Adj;
    fn init_adj(
    &self,
    g: &Self::Graph,
    key: Vertex<ChangeId>,
    dest: Position<ChangeId>,
    min_flag: EdgeFlags,
    max_flag: EdgeFlags,
    ) -> Result<Self::Adj, TxnErr<Self::GraphError>> {
    let edge = Edge {
    flag: min_flag,
    dest,
    introduced_by: ChangeId::ROOT,
    };
    if let Ok((cursor, _)) = self.txn.set_cursors(g, Some((key, Some(edge)))) {
    Ok(Adj {
    cursor,
    key,
    min_flag,
    max_flag,
    })
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    fn next_adj(
    &self,
    _: &Self::Graph,
    a: &mut Self::Adj,
    ) -> Option<Result<Edge, TxnErr<Self::GraphError>>> {
    next_adj(&self.txn, a)
    }
    fn find_block(
    &self,
    graph: &Self::Graph,
    p: Position<ChangeId>,
    ) -> Result<Vertex<ChangeId>, BlockError<Self::GraphError>> {
    find_block(&self.txn, graph, p)
    }
    fn find_block_end(
    &self,
    graph: &Self::Graph,
    p: Position<ChangeId>,
    ) -> Result<Vertex<ChangeId>, BlockError<Self::GraphError>> {
    find_block_end(&self.txn, graph, p)
    }
    }
    unsafe fn next_graph<T: ::sanakirja::Transaction>(
    txn: &T,
    cursor: &mut ::sanakirja::Cursor,
    ) -> Result<Option<(Vertex<ChangeId>, Edge)>, BlockError<SanakirjaError>> {
    match ::sanakirja::next::<_, Vertex<ChangeId>, Edge>(txn, cursor) {
    Ok(x) => Ok(x),
    Err(::sanakirja::CRCError {}) => Err(BlockError::Txn(SanakirjaError::PristineCorrupt)),
    }
    }
    unsafe fn prev_graph<T: ::sanakirja::Transaction>(
    txn: &T,
    cursor: &mut ::sanakirja::Cursor,
    ) -> Result<Option<(Vertex<ChangeId>, Edge)>, BlockError<SanakirjaError>> {
    match ::sanakirja::prev::<_, Vertex<ChangeId>, Edge>(txn, cursor) {
    Ok(x) => Ok(x),
    Err(::sanakirja::CRCError {}) => Err(BlockError::Txn(SanakirjaError::PristineCorrupt)),
    }
    }
    #[doc(hidden)]
    pub fn next_adj<T: ::sanakirja::Transaction>(
    txn: &T,
    a: &mut Adj,
    ) -> Option<Result<Edge, TxnErr<SanakirjaError>>> {
    loop {
    let x: Result<Option<(Vertex<ChangeId>, Edge)>, _> =
    unsafe { ::sanakirja::next(txn, &mut a.cursor) };
    match x {
    Ok(Some((v, e))) => {
    debug!("adjacent iterator: {:?} {:?}", v, e);
    if v == a.key {
    if e.flag >= a.min_flag {
    if e.flag <= a.max_flag {
    return Some(Ok(e));
    } else {
    return None;
    }
    }
    } else if v > a.key {
    return None;
    }
    }
    Err(e) => return Some(Err(TxnErr(e.into()))),
    Ok(None) => {
    debug!("adjacent iterator: over");
    return None;
    }
    }
    }
    }
    #[doc(hidden)]
    pub fn find_block<T: ::sanakirja::Transaction>(
    txn: &T,
    graph: &::sanakirja::Db<Vertex<ChangeId>, Edge>,
    p: Position<ChangeId>,
    ) -> Result<Vertex<ChangeId>, BlockError<SanakirjaError>> {
    if p.change.is_root() {
    return Ok(Vertex::ROOT);
    }
    let key = Vertex {
    change: p.change,
    start: p.pos,
    end: p.pos,
    };
    debug!(target: "libpijul::find_block", "find_block {:?}", key);
    let mut cursor = if let Ok((cursor, _)) = txn.set_cursors(&graph, Some((key, None))) {
    cursor
    } else {
    return Err(BlockError::Txn(SanakirjaError::PristineCorrupt));
    };
    let mut k = if let Some((k, _)) = unsafe { next_graph(txn, &mut cursor)? } {
    k
    } else {
    return Err(BlockError::Block { block: p });
    };
    debug!("k = {:?}", k);
    // The only guarantee here is that k is either the first key
    // >= `key`, or the key just before that. We might need to
    // rewind by one step if key is strictly larger than the
    // result (i.e. if `p` is in the middle of the key).
    while k.change > p.change || (k.change == p.change && k.start > p.pos) {
    debug!(target: "libpijul::find_block", "find_block while {:?}", k);
    if let Some((k_, _)) = unsafe { prev_graph(txn, &mut cursor)? } {
    k = k_
    } else {
    break;
    }
    }
    loop {
    debug!(target: "libpijul::find_block", "find_block loop {:?}", k);
    if k.change == p.change && k.start <= p.pos {
    if k.end > p.pos || (k.start == k.end && k.end == p.pos) {
    return Ok(k);
    }
    } else if k.change > p.change {
    return Err(BlockError::Block { block: p });
    }
    if let Some((k_, _)) = unsafe { next_graph(txn, &mut cursor)? } {
    k = k_
    } else {
    break;
    }
    }
    debug!(target: "libpijul::find_block", "find_block None, {:?}", k);
    Err(BlockError::Block { block: p })
    }
    #[doc(hidden)]
    pub fn find_block_end<T: ::sanakirja::Transaction>(
    txn: &T,
    graph: &::sanakirja::Db<Vertex<ChangeId>, Edge>,
    p: Position<ChangeId>,
    ) -> Result<Vertex<ChangeId>, BlockError<SanakirjaError>> {
    if p.change.is_root() {
    return Ok(Vertex::ROOT);
    }
    let key = Vertex {
    change: p.change,
    start: p.pos,
    end: p.pos,
    };
    debug!(target: "libpijul::find_block_end", "find_block_end {:?}, p.change.0 = {:?}", key, p.change.0);
    let mut cursor = if let Ok((cursor, _)) = txn.set_cursors(&graph, Some((key, None))) {
    cursor
    } else {
    return Err(BlockError::Txn(SanakirjaError::PristineCorrupt));
    };
    let mut k = if let Some((k, _)) = unsafe { next_graph(txn, &mut cursor)? } {
    k
    } else {
    return Err(BlockError::Block { block: p });
    };
    // The only guarantee here is that k is either the first key
    // before `key`, or the key just before that.
    loop {
    debug!(target: "libpijul::find_block_end", "find_block_end loop {:?} k.change.0 = {:?}", k, k.change.0);
    if k.change < p.change {
    break;
    } else if k.change == p.change {
    // Here we want to create an edge pointing between `p`
    // and its successor. If k.start == p.pos, the only
    // case where that's what we want is if k.start ==
    // k.end.
    if k.start == p.pos && k.end == p.pos {
    return Ok(k);
    } else if k.start < p.pos {
    break;
    }
    }
    if let Some((k_, _)) = unsafe { prev_graph(txn, &mut cursor)? } {
    k = k_
    } else {
    break;
    }
    }
    // We also want k.end >= p.pos, so we just call next() until
    // we have that.
    debug!(target: "libpijul::find_block_end", "find_block_end k(0) = {:?} k.change.0 = {:?}", k, k.change.0);
    while k.change < p.change || (k.change == p.change && p.pos > k.end) {
    if let Some((k_, _)) = unsafe { next_graph(txn, &mut cursor)? } {
    k = k_
  • edit in libpijul/src/pristine/sanakirja.rs at line 600
    [4.542828]
    [3.40474]
    break;
    }
    }
    debug!(target: "libpijul::find_block_end", "find_block_end k(1) = {:?}, k.change.0 = {:?}", k, k.change.0);
    if k.change == p.change
    && ((k.start < p.pos && p.pos <= k.end) || (k.start == k.end && k.start == p.pos))
    {
    debug!("ok");
    Ok(k)
    } else {
    Err(BlockError::Block { block: p })
    }
    }
    pub struct Adj {
    pub cursor: ::sanakirja::Cursor,
    pub key: Vertex<ChangeId>,
    pub min_flag: EdgeFlags,
    pub max_flag: EdgeFlags,
    }
    impl<T: ::sanakirja::Transaction> GraphIter for GenericTxn<T> {
    type GraphCursor = ::sanakirja::Cursor;
    fn iter_graph(&self, g: &Self::Graph) -> Result<Self::GraphCursor, TxnErr<Self::GraphError>> {
    if let Ok((cursor, _)) = self.txn.set_cursors(&g, None) {
    Ok(cursor)
    } else {
  • edit in libpijul/src/pristine/sanakirja.rs at line 629
    [3.40531]
    [4.542878]
    }
    }
    fn next_graph(
    &self,
    _: &Self::Graph,
    a: &mut Self::GraphCursor,
    ) -> Option<Result<(Vertex<ChangeId>, Edge), TxnErr<Self::GraphError>>> {
    match unsafe { ::sanakirja::next(&self.txn, a) } {
    Ok(Some(x)) => Some(Ok(x)),
    Ok(None) => None,
    Err(::sanakirja::CRCError {}) => Some(Err(TxnErr(SanakirjaError::PristineCorrupt))),
  • edit in libpijul/src/pristine/sanakirja.rs at line 645
    [4.542895]
    [3.40535]
    pub struct Channel {
    pub graph: Db<Vertex<ChangeId>, Edge>,
    pub changes: Db<ChangeId, u64>,
    pub revchanges: Db<u64, (ChangeId, Merkle)>,
    pub states: Db<Merkle, u64>,
    pub apply_counter: ApplyTimestamp,
    pub name: SmallString,
    pub last_modified: u64,
    }
  • replacement in libpijul/src/pristine/sanakirja.rs at line 656
    [3.40601][3.40601:40641]()
    type Changeset = Db<ChangeId, u64>;
    [3.40601]
    [3.40641]
    type Channel = Channel;
  • replacement in libpijul/src/pristine/sanakirja.rs at line 658
    [3.40642][3.40642:40695]()
    type Revchangeset = Db<u64, (ChangeId, Merkle)>;
    [3.40642]
    [3.40695]
    fn graph(c: &Channel) -> &Db<Vertex<ChangeId>, Edge> {
    &c.graph
    }
    fn name(c: &Channel) -> &str {
    c.name.as_str()
    }
    fn apply_counter(channel: &Self::Channel) -> u64 {
    channel.apply_counter
    }
    fn last_modified(channel: &Self::Channel) -> u64 {
    channel.last_modified
    }
    fn changes(channel: &Self::Channel) -> &Self::Changeset {
    &channel.changes
    }
    fn rev_changes(channel: &Self::Channel) -> &Self::RevChangeset {
    &channel.revchanges
    }
    type Changeset = ::sanakirja::Db<ChangeId, u64>;
    type RevChangeset = ::sanakirja::Db<u64, (ChangeId, Merkle)>;
  • replacement in libpijul/src/pristine/sanakirja.rs at line 680
    [3.40696][3.40696:41048]()
    type Channelstates = Db<Merkle, u64>;
    sanakirja_get!(changeset, ChangeId, u64, GraphError);
    sanakirja_get!(revchangeset, u64, (ChangeId, Merkle), GraphError);
    sanakirja_cursor!(changeset, ChangeId, u64);
    sanakirja_cursor_ref!(revchangeset, u64, (ChangeId, Merkle));
    sanakirja_rev_cursor!(revchangeset, u64, (ChangeId, Merkle));
    [3.40696]
    [3.41048]
    fn get_changeset(
    &self,
    channel: &Self::Changeset,
    c: ChangeId,
    ) -> Result<Option<u64>, TxnErr<Self::GraphError>> {
    if let Ok(x) = self.txn.get(channel, c, None) {
    Ok(x)
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    fn get_revchangeset(
    &self,
    revchanges: &Self::RevChangeset,
    c: u64,
    ) -> Result<Option<(ChangeId, Merkle)>, TxnErr<Self::GraphError>> {
    if let Ok(x) = self.txn.get(revchanges, c, None) {
    Ok(x)
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    type ChangesetCursor = ::sanakirja::Cursor;
    fn cursor_changeset<'a>(
    &'a self,
    channel: &Self::Changeset,
    pos: Option<ChangeId>,
    ) -> Result<Cursor<Self, &'a Self, Self::ChangesetCursor, ChangeId, u64>, TxnErr<SanakirjaError>>
    {
    if let Ok((cursor, _)) = self.txn.set_cursors(&channel, pos.map(|x| (x, None))) {
    Ok(Cursor {
    cursor,
    txn: self,
    marker: std::marker::PhantomData,
    })
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    type RevchangesetCursor = ::sanakirja::Cursor;
    fn cursor_revchangeset_ref<'a, RT: std::ops::Deref<Target = Self>>(
    txn: RT,
    channel: &Self::RevChangeset,
    pos: Option<u64>,
    ) -> Result<
    Cursor<Self, RT, Self::RevchangesetCursor, u64, (ChangeId, Merkle)>,
    TxnErr<SanakirjaError>,
    > {
    if let Ok((cursor, _)) = txn.txn.set_cursors(channel, pos.map(|x| (x, None))) {
    Ok(Cursor {
    cursor,
    txn,
    marker: std::marker::PhantomData,
    })
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    fn rev_cursor_revchangeset<'a>(
    &'a self,
    channel: &Self::RevChangeset,
    pos: Option<u64>,
    ) -> Result<
    RevCursor<Self, &'a Self, Self::RevchangesetCursor, u64, (ChangeId, Merkle)>,
    TxnErr<SanakirjaError>,
    > {
    let cursor = if let Some(pos) = pos {
    if let Ok((x, _)) = self.txn.set_cursors(channel, Some((pos, None))) {
    x
    } else {
    return Err(TxnErr(SanakirjaError::PristineCorrupt));
    }
    } else if let Ok(x) = self.txn.set_cursors_last(channel) {
    x
    } else {
    return Err(TxnErr(SanakirjaError::PristineCorrupt));
    };
    Ok(RevCursor {
    cursor,
    txn: self,
    marker: std::marker::PhantomData,
    })
    }
    fn cursor_revchangeset_next(
    &self,
    cursor: &mut Self::RevchangesetCursor,
    ) -> Result<Option<(u64, (ChangeId, Merkle))>, TxnErr<SanakirjaError>> {
    if let Ok(x) = unsafe { ::sanakirja::next(&self.txn, cursor) } {
    Ok(x)
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    fn cursor_revchangeset_prev(
    &self,
    cursor: &mut Self::RevchangesetCursor,
    ) -> Result<Option<(u64, (ChangeId, Merkle))>, TxnErr<SanakirjaError>> {
    if let Ok(x) = unsafe { ::sanakirja::prev(&self.txn, cursor) } {
    Ok(x)
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    fn cursor_changeset_next(
    &self,
    cursor: &mut Self::ChangesetCursor,
    ) -> Result<Option<(ChangeId, u64)>, TxnErr<SanakirjaError>> {
    if let Ok(x) = unsafe { ::sanakirja::next(&self.txn, cursor) } {
    Ok(x)
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    fn cursor_changeset_prev(
    &self,
    cursor: &mut Self::ChangesetCursor,
    ) -> Result<Option<(ChangeId, u64)>, TxnErr<SanakirjaError>> {
    if let Ok(x) = unsafe { ::sanakirja::prev(&self.txn, cursor) } {
    Ok(x)
    } else {
    Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
  • edit in libpijul/src/pristine/sanakirja.rs at line 984
    [3.44451]
    [3.44451]
    }
    }
    impl<T: ::sanakirja::Transaction> GenericTxn<T> {
    #[doc(hidden)]
    pub unsafe fn unsafe_load_channel(
    &self,
    name: SmallString,
    ) -> Result<Option<Channel>, TxnErr<SanakirjaError>> {
    if let Some((channel, changes, revchanges, states, counter, last_modified)) = self.txn.get(
    &self.channels,
    UnsafeSmallStr::from_small_str(name.as_small_str()),
    None,
    )? {
    debug!("unsafe_load_channel: found {:?} {:?}", changes, revchanges);
    Ok(Some(Channel {
    graph: channel,
    changes,
    revchanges,
    apply_counter: counter,
    states,
    name: name.clone(),
    last_modified,
    }))
    } else {
    debug!("unsafe_load_channel: not found");
    Ok(None)
    }
  • edit in libpijul/src/pristine/sanakirja.rs at line 1098
    [3.47221][4.549083:549091](),[4.549083][4.549083:549091]()
    ///
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1105
    [4.549310][4.549310:549585](),[4.549585][3.47349:47372](),[3.47372][4.549607:550109](),[4.549607][4.549607:550109]()
    if let Some((channel, changes, revchanges, states, counter, last_modified)) =
    self.txn.get(
    &self.channels,
    UnsafeSmallStr::from_small_str(name.as_small_str()),
    None,
    )?
    {
    let r = ChannelRef {
    r: Rc::new(RefCell::new(Channel {
    graph: channel,
    changes,
    revchanges,
    apply_counter: counter,
    states,
    name: name.clone(),
    last_modified,
    })),
    };
    v.insert(r);
    [4.549310]
    [4.550109]
    if let Some(c) = unsafe { self.unsafe_load_channel(name)? } {
    Ok(Some(
    v.insert(ChannelRef {
    r: Rc::new(RefCell::new(c)),
    })
    .clone(),
    ))
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1113
    [4.550134][3.47373:47410]()
    return Ok(None);
    [4.550134]
    [4.550167]
    Ok(None)
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1116
    [4.550199][4.550199:550236]()
    Entry::Occupied(_) => {}
    [4.550199]
    [4.550236]
    Entry::Occupied(occ) => Ok(Some(occ.get().clone())),
  • edit in libpijul/src/pristine/sanakirja.rs at line 1118
    [4.550246][3.47411:47471]()
    Ok(self.open_channels.borrow().get(&name).cloned())
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1137
    [4.551070][4.551070:551103]()
    v.insert(r);
    [4.551070]
    [4.551103]
    Ok(Some(v.insert(r).clone()))
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1142
    [4.551193][4.551193:551230]()
    Entry::Occupied(_) => {}
    [4.551193]
    [4.551230]
    Entry::Occupied(occ) => Ok(Some(occ.get().clone())),
  • edit in libpijul/src/pristine/sanakirja.rs at line 1144
    [4.551240][3.47634:47693]()
    Ok(self.open_remotes.borrow().get(&name).cloned())
  • edit in libpijul/src/pristine/sanakirja.rs at line 1324
    [3.50239]
    [3.50239]
    fn split_block(
    &mut self,
    graph: &mut Self::Graph,
    key: Vertex<ChangeId>,
    pos: ChangePosition,
    buf: &mut Vec<Edge>,
    ) -> Result<(), TxnErr<Self::GraphError>> {
    let (mut cursor, _) = self.txn.set_cursors(graph, Some((key, None)))?;
    loop {
    match unsafe { ::sanakirja::next::<_, Vertex<ChangeId>, Edge>(&self.txn, &mut cursor) }
    {
    Ok(Some((k, v))) => {
    if k > key {
    break;
    } else if k < key {
    continue;
    }
    buf.push(v)
    }
    Ok(None) => break,
    Err(::sanakirja::CRCError {}) => {
    return Err(TxnErr(SanakirjaError::PristineCorrupt))
    }
    }
    }
    for chi in buf.drain(..) {
    assert!(chi.introduced_by != ChangeId::ROOT || chi.flag.contains(EdgeFlags::PSEUDO));
    if chi.flag.contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) {
    put_graph_with_rev(
    self,
    graph,
    chi.flag - EdgeFlags::PARENT,
    Vertex {
    change: key.change,
    start: key.start,
    end: pos,
    },
    Vertex {
    change: key.change,
    start: pos,
    end: key.end,
    },
    chi.introduced_by,
    )?;
    }
    self.del_graph(graph, key, Some(chi))?;
    self.put_graph(
    graph,
    if chi.flag.contains(EdgeFlags::PARENT) {
    Vertex {
    change: key.change,
    start: key.start,
    end: pos,
    }
    } else {
    Vertex {
    change: key.change,
    start: pos,
    end: key.end,
    }
    },
    chi,
    )?;
    }
    Ok(())
    }
  • edit in libpijul/src/pristine/sanakirja.rs at line 1395
    [3.50279]
    [4.560126]
    fn graph_mut(c: &mut Self::Channel) -> &mut Self::Graph {
    &mut c.graph
    }
    fn touch_channel(channel: &mut Self::Channel, t: Option<u64>) {
    use std::time::SystemTime;
    if let Some(t) = t {
    channel.last_modified = t
    } else if let Ok(duration) = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH) {
    channel.last_modified = duration.as_secs()
    }
    }
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1409
    [4.560165][4.560165:560202]()
    channel: &mut Channel<Self>,
    [4.560165]
    [4.560202]
    channel: &mut Self::Channel,
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1414
    [3.50340][3.50340:50410]()
    if self.get_changeset(&channel.changes, p, None)?.is_none() {
    [3.50340]
    [4.560386]
    if self.get_changeset(&channel.changes, p)?.is_none() {
  • edit in libpijul/src/pristine/sanakirja.rs at line 1417
    [4.560477]
    [3.50411]
    for i in self.txn.iter(&channel.changes, None).unwrap() {
    debug!("changes {:?}", i);
    }
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1426
    [4.560694][4.560694:560719](),[4.560719][3.50529:50594](),[3.50594][4.560783:560812](),[4.560783][4.560783:560812]()
    assert!(self
    .get_revchangeset(&channel.revchanges, t, None)?
    .is_none());
    [4.560694]
    [4.560812]
    assert!(self.get_revchangeset(&channel.revchanges, t)?.is_none());
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1439
    [4.561149][4.561149:561186]()
    channel: &mut Channel<Self>,
    [4.561149]
    [4.561186]
    channel: &mut Self::Channel,
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1562
    [4.563283][4.563283:563351]()
    match self.open_channels.borrow_mut().entry(name.clone()) {
    [4.563283]
    [4.563351]
    let result = match self.open_channels.borrow_mut().entry(name.clone()) {
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1602
    [4.564869][4.564869:564898]()
    v.insert(r);
    [4.564869]
    [4.564898]
    v.insert(r).clone()
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1604
    [4.564912][4.564912:564959]()
    Entry::Occupied(_) => {}
    }
    [4.564912]
    [4.564959]
    Entry::Occupied(occ) => occ.get().clone(),
    };
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1609
    [4.565055][4.565055:565123]()
    Ok(self.open_channels.borrow().get(&name).unwrap().clone())
    [4.565055]
    [4.565123]
    Ok(result)
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1822
    [4.572085][3.53520:53620]()
    pub fn load_const_channel(&self, name: &str) -> Result<Option<Channel<Self>>, SanakirjaError> {
    [4.572085]
    [4.572161]
    pub fn load_const_channel(&self, name: &str) -> Result<Option<Channel>, SanakirjaError> {
  • edit in libpijul/src/pristine/mod.rs at line 26
    [4.587267][4.36955:36956](),[4.36956][4.36956:36992]()
    mod block;
    pub(crate) use block::*;
  • edit in libpijul/src/pristine/mod.rs at line 35
    [4.587485][4.587485:587546](),[4.587546][3.53882:53919](),[3.53919][4.587576:587806](),[4.587576][4.587576:587806]()
    /// A channel, i.e. a pristine graph plus a set of changes.
    pub struct Channel<T: ChannelTxnT> {
    pub graph: T::Graph,
    pub changes: T::Changeset,
    pub revchanges: T::Revchangeset,
    pub states: T::Channelstates,
    pub apply_counter: ApplyTimestamp,
    pub(crate) name: SmallString,
    pub last_modified: u64,
    }
  • replacement in libpijul/src/pristine/mod.rs at line 37
    [3.53960][4.587840:587883](),[4.587840][4.587840:587883]()
    pub(crate) r: Rc<RefCell<Channel<T>>>,
    [3.53960]
    [4.587883]
    pub(crate) r: Rc<RefCell<T::Channel>>,
  • edit in libpijul/src/pristine/mod.rs at line 43
    [4.587997][4.587997:588006](),[4.588006][3.54009:54043](),[3.54043][4.588033:588093](),[4.588033][4.588033:588093](),[4.588093][4.6568:6577](),[4.6577][3.54044:54078](),[3.54078][4.6607:6831](),[4.6607][4.6607:6831]()
    }
    }
    impl<T: ChannelTxnT> Channel<T> {
    pub fn name(&self) -> &str {
    self.name.as_str()
    }
    }
    impl<T: ChannelTxnT> Channel<T> {
    pub(crate) fn touch(&mut self) {
    use std::time::SystemTime;
    if let Ok(duration) = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH) {
    self.last_modified = duration.as_secs();
    }
  • replacement in libpijul/src/pristine/mod.rs at line 53
    [3.54116][4.588230:588287](),[4.588230][4.588230:588287]()
    pub fn borrow(&self) -> std::cell::Ref<Channel<T>> {
    [3.54116]
    [4.588287]
    pub fn borrow(&self) -> std::cell::Ref<T::Channel> {
  • replacement in libpijul/src/pristine/mod.rs at line 56
    [4.588317][4.588317:588385]()
    pub fn borrow_mut(&mut self) -> std::cell::RefMut<Channel<T>> {
    [4.588317]
    [4.588385]
    pub fn borrow_mut(&mut self) -> std::cell::RefMut<T::Channel> {
  • edit in libpijul/src/pristine/mod.rs at line 117
    [4.589224][3.54415:54475]()
    cursor_ref!(graph, Vertex<ChangeId>, Edge, GraphError);
  • edit in libpijul/src/pristine/mod.rs at line 125
    [3.54927]
    [3.54927]
    type Adj;
    fn init_adj(
    &self,
    g: &Self::Graph,
    v: Vertex<ChangeId>,
    dest: Position<ChangeId>,
    min: EdgeFlags,
    max: EdgeFlags,
    ) -> Result<Self::Adj, TxnErr<Self::GraphError>>;
    fn next_adj(
    &self,
    g: &Self::Graph,
    a: &mut Self::Adj,
    ) -> Option<Result<Edge, TxnErr<Self::GraphError>>>;
    fn find_block(
    &self,
    graph: &Self::Graph,
    p: Position<ChangeId>,
    ) -> Result<Vertex<ChangeId>, BlockError<Self::GraphError>>;
    fn find_block_end(
    &self,
    graph: &Self::Graph,
    p: Position<ChangeId>,
    ) -> Result<Vertex<ChangeId>, BlockError<Self::GraphError>>;
  • replacement in libpijul/src/pristine/mod.rs at line 155
    [3.54965][4.589314:589337](),[4.589314][4.589314:589337](),[4.589337][3.54966:55065]()
    table!(changeset);
    get!(changeset, ChangeId, u64, GraphError);
    cursor!(changeset, ChangeId, u64, GraphError);
    [3.54965]
    [4.589412]
    type Channel;
    fn name(channel: &Self::Channel) -> &str;
    fn graph(channel: &Self::Channel) -> &Self::Graph;
    fn apply_counter(channel: &Self::Channel) -> u64;
    fn last_modified(channel: &Self::Channel) -> u64;
    fn changes(channel: &Self::Channel) -> &Self::Changeset;
    fn rev_changes(channel: &Self::Channel) -> &Self::RevChangeset;
    type Changeset;
    type RevChangeset;
    fn get_changeset(
    &self,
    channel: &Self::Changeset,
    c: ChangeId,
    ) -> Result<Option<u64>, TxnErr<Self::GraphError>>;
    fn get_revchangeset(
    &self,
    channel: &Self::RevChangeset,
    c: u64,
    ) -> Result<Option<(ChangeId, Merkle)>, TxnErr<Self::GraphError>>;
    type ChangesetCursor;
    fn cursor_changeset<'txn>(
    &'txn self,
    channel: &Self::Changeset,
    pos: Option<ChangeId>,
    ) -> Result<
    crate::pristine::Cursor<Self, &'txn Self, Self::ChangesetCursor, ChangeId, u64>,
    TxnErr<Self::GraphError>,
    >;
    fn cursor_changeset_next(
    &self,
    cursor: &mut Self::ChangesetCursor,
    ) -> Result<Option<(ChangeId, u64)>, TxnErr<Self::GraphError>>;
  • replacement in libpijul/src/pristine/mod.rs at line 191
    [4.589413][4.589413:589439](),[4.589439][3.55066:55263]()
    table!(revchangeset);
    get!(revchangeset, u64, (ChangeId, Merkle), GraphError);
    cursor_ref!(revchangeset, u64, (ChangeId, Merkle), GraphError);
    rev_cursor!(revchangeset, u64, (ChangeId, Merkle), GraphError);
    [4.589413]
    [4.589600]
    fn cursor_changeset_prev(
    &self,
    cursor: &mut Self::ChangesetCursor,
    ) -> Result<Option<(ChangeId, u64)>, TxnErr<Self::GraphError>>;
  • replacement in libpijul/src/pristine/mod.rs at line 196
    [4.589601][4.589601:589628]()
    table!(channelstates);
    [4.589601]
    [3.55264]
    type RevchangesetCursor;
    fn cursor_revchangeset_ref<RT: std::ops::Deref<Target = Self>>(
    txn: RT,
    channel: &Self::RevChangeset,
    pos: Option<u64>,
    ) -> Result<
    Cursor<Self, RT, Self::RevchangesetCursor, u64, (ChangeId, Merkle)>,
    TxnErr<Self::GraphError>,
    >;
    fn rev_cursor_revchangeset<'txn>(
    &'txn self,
    channel: &Self::RevChangeset,
    pos: Option<u64>,
    ) -> Result<
    RevCursor<Self, &'txn Self, Self::RevchangesetCursor, u64, (ChangeId, Merkle)>,
    TxnErr<Self::GraphError>,
    >;
    fn cursor_revchangeset_next(
    &self,
    cursor: &mut Self::RevchangesetCursor,
    ) -> Result<Option<(u64, (ChangeId, Merkle))>, TxnErr<Self::GraphError>>;
    fn cursor_revchangeset_prev(
    &self,
    cursor: &mut Self::RevchangesetCursor,
    ) -> Result<Option<(u64, (ChangeId, Merkle))>, TxnErr<Self::GraphError>>;
    }
    pub trait GraphIter: GraphTxnT {
    type GraphCursor;
    fn iter_graph(&self, g: &Self::Graph) -> Result<Self::GraphCursor, TxnErr<Self::GraphError>>;
    fn next_graph(
    &self,
    g: &Self::Graph,
    a: &mut Self::GraphCursor,
    ) -> Option<Result<(Vertex<ChangeId>, Edge), TxnErr<Self::GraphError>>>;
    }
    #[derive(Debug, Error)]
    pub enum BlockError<T: std::error::Error + 'static> {
    #[error(transparent)]
    Txn(T),
    #[error("Block error: {:?}", block)]
    Block { block: Position<ChangeId> },
    }
    impl<T: std::error::Error + 'static> std::convert::From<TxnErr<T>> for BlockError<T> {
    fn from(e: TxnErr<T>) -> Self {
    BlockError::Txn(e.0)
    }
  • edit in libpijul/src/pristine/mod.rs at line 352
    [4.591368][4.591368:591984]()
    /// Returns a handle to the channel with name `name`, if it
    /// exists. In order to prevent memory leaks, channels have to be
    /// committed after use.
    ///
    /// See the note about the return type of
    /// [`MutTxnT::open_or_create_channel`](trait.MutTxnT.html#tymethod.open_or_create_channel).
    /// Since a mutable transaction type could implement both this
    /// trait and [`MutTxnT`](trait.MutTxnT.html), the return type of
    /// this function must use the same logic as the return type of
    /// [`MutTxnT::open_or_create_channel`](trait.MutTxnT.html#tymethod.open_or_create_channel).
  • replacement in libpijul/src/pristine/mod.rs at line 432
    [4.37377][3.60117:60176]()
    pub(crate) fn iter_adjacent<'db, 'txn: 'db, T: GraphTxnT>(
    [4.37377]
    [4.37431]
    pub(crate) fn iter_adjacent<'txn, T: GraphTxnT>(
  • replacement in libpijul/src/pristine/mod.rs at line 434
    [4.37449][3.60177:60203]()
    graph: &'db T::Graph,
    [4.37449]
    [4.37479]
    graph: &'txn T::Graph,
  • edit in libpijul/src/pristine/mod.rs at line 439
    [3.60268][4.37589:37711](),[4.37589][4.37589:37711]()
    let edge = Edge {
    flag: min_flag,
    dest: Position::ROOT,
    introduced_by: ChangeId::ROOT,
    };
  • replacement in libpijul/src/pristine/mod.rs at line 440
    [3.60295][3.60295:60349](),[3.60349][4.37796:37845](),[4.37796][4.37796:37845]()
    it: iter_graph(txn, graph, key, Some(edge))?,
    key,
    min_flag,
    max_flag,
    [3.60295]
    [3.60350]
    it: txn.init_adj(graph, key, Position::ROOT, min_flag, max_flag)?,
    graph,
    txn,
  • replacement in libpijul/src/pristine/mod.rs at line 446
    [4.6835][3.60358:60423]()
    pub(crate) fn iter_alive_children<'db, 'txn: 'db, T: GraphTxnT>(
    [4.6835]
    [4.6895]
    pub(crate) fn iter_alive_children<'txn, T: GraphTxnT>(
  • replacement in libpijul/src/pristine/mod.rs at line 448
    [4.6913][3.60424:60450]()
    graph: &'db T::Graph,
    [4.6913]
    [4.6943]
    graph: &'txn T::Graph,
  • replacement in libpijul/src/pristine/mod.rs at line 460
    [4.607396][3.60532:60598]()
    pub(crate) fn iter_deleted_parents<'db, 'txn: 'db, T: GraphTxnT>(
    [4.607396]
    [4.7198]
    pub(crate) fn iter_deleted_parents<'txn, T: GraphTxnT>(
  • replacement in libpijul/src/pristine/mod.rs at line 462
    [4.7216][3.60599:60625]()
    graph: &'db T::Graph,
    [4.7216]
    [4.7246]
    graph: &'txn T::Graph,
  • replacement in libpijul/src/pristine/mod.rs at line 474
    [4.7451][3.60707:60765]()
    pub(crate) fn iter_adj_all<'db, 'txn: 'db, T: GraphTxnT>(
    [4.7451]
    [4.7504]
    pub(crate) fn iter_adj_all<'txn, T: GraphTxnT>(
  • replacement in libpijul/src/pristine/mod.rs at line 476
    [4.7522][3.60766:60792]()
    graph: &'db T::Graph,
    [4.7522]
    [4.7552]
    graph: &'txn T::Graph,
  • edit in libpijul/src/pristine/mod.rs at line 552
    [4.39316][4.39316:39319](),[4.39319][3.62062:62108](),[3.62108][4.39360:39446](),[4.39360][4.39360:39446](),[4.39446][3.62109:62206](),[3.62206][4.4286:4328](),[4.39512][4.4286:4328]()
    }
    pub(crate) fn iter_graph<'txn, T: GraphTxnT>(
    txn: &'txn T,
    graph: &T::Graph,
    k: Vertex<ChangeId>,
    v: Option<Edge>,
    ) -> Result<Cursor<T, &'txn T, T::GraphCursor, Vertex<ChangeId>, Edge>, TxnErr<T::GraphError>> {
    txn.cursor_graph(graph, Some((k, v)))
  • edit in libpijul/src/pristine/mod.rs at line 554
    [4.39578][3.62207:62284](),[3.62284][4.39650:39731](),[4.39650][4.39650:39731](),[4.39731][3.62285:62377](),[3.62377][4.4329:4379](),[4.39792][4.4329:4379](),[4.4379][4.39863:39866](),[4.39863][4.39863:39866]()
    pub(crate) fn iter_graph_ref<T: GraphTxnT, RT: std::ops::Deref<Target = T>>(
    txn: RT,
    graph: &T::Graph,
    k: Vertex<ChangeId>,
    v: Option<Edge>,
    ) -> Result<Cursor<T, RT, T::GraphCursor, Vertex<ChangeId>, Edge>, TxnErr<T::GraphError>> {
    T::cursor_graph_ref(txn, graph, Some((k, v)))
    }
  • replacement in libpijul/src/pristine/mod.rs at line 556
    [4.39937][4.39937:39967]()
    channel: &'db Channel<T>,
    [4.39937]
    [4.39967]
    channel: &'db T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 560
    [3.62544][4.40056:40125](),[4.40056][4.40056:40125]()
    txn.cursor_revchangeset(&channel.revchanges, Some((from, None)))
    [3.62544]
    [4.40125]
    T::cursor_revchangeset_ref(txn, T::rev_changes(&channel), Some(from))
  • replacement in libpijul/src/pristine/mod.rs at line 565
    [4.40200][4.40200:40230]()
    channel: &'db Channel<T>,
    [4.40200]
    [3.62607]
    channel: &'db T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 568
    [3.62677][3.62677:62738]()
    .rev_cursor_revchangeset(&channel.revchanges, None)?
    [3.62677]
    [4.40311]
    .rev_cursor_revchangeset(T::rev_changes(&channel), None)?
  • replacement in libpijul/src/pristine/mod.rs at line 580
    [4.40447][4.40447:40473]()
    channel: &Channel<T>,
    [4.40447]
    [4.40473]
    channel: &T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 585
    [3.63066][3.63066:63123]()
    &channel.revchanges,
    Some((from, None)),
    [3.63066]
    [3.63123]
    T::rev_changes(&channel),
    Some(from),
  • replacement in libpijul/src/pristine/mod.rs at line 592
    [4.40712][4.40712:40742]()
    channel: &'db Channel<T>,
    [4.40712]
    [4.40742]
    channel: &'db T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 598
    [3.63316][3.63316:63405]()
    Ok(txn.rev_cursor_revchangeset(&channel.revchanges, from.map(|from| (from, None)))?)
    [3.63316]
    [4.40926]
    Ok(txn.rev_cursor_revchangeset(T::rev_changes(&channel), from)?)
  • replacement in libpijul/src/pristine/mod.rs at line 607
    [4.41000][4.41000:41035]()
    channel: &'channel Channel<T>,
    [4.41000]
    [4.41035]
    channel: &'channel T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 612
    [3.63629][3.63629:63720]()
    iter: txn.cursor_revchangeset(&channel.revchanges, Some((from_timestamp, None)))?,
    [3.63629]
    [4.41239]
    iter: T::cursor_revchangeset_ref(txn, T::rev_changes(&channel), Some(from_timestamp))?,
  • replacement in libpijul/src/pristine/mod.rs at line 625
    [4.41361][4.41361:41396]()
    channel: &'channel Channel<T>,
    [4.41361]
    [4.41396]
    channel: &'channel T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 630
    [3.63962][3.63962:64057]()
    iter: txn.rev_cursor_revchangeset(&channel.revchanges, Some((from_timestamp, None)))?,
    [3.63962]
    [4.41610]
    iter: txn.rev_cursor_revchangeset(T::rev_changes(&channel), Some(from_timestamp))?,
  • replacement in libpijul/src/pristine/mod.rs at line 647
    [4.41931][4.41931:42133](),[4.42133][3.64175:64323](),[3.64323][4.42282:42390](),[4.42282][4.42282:42390](),[4.42390][3.64324:64349]()
    let key = Vertex {
    change: a.change,
    start: a.pos,
    end: a.pos,
    };
    let edge = Edge {
    flag: min,
    dest: b,
    introduced_by: ChangeId::ROOT,
    };
    let mut cursor = txn.cursor_graph(&channel, Some((key, Some(edge))))?;
    let (a_, b_) = cursor.next().unwrap()?;
    Ok(a_.change == a.change
    && a_.start <= a.pos
    && a_.end >= a.pos
    && b_.flag >= min
    && b_.flag <= max
    && b_.dest == b)
    [4.41931]
    [4.42414]
    let mut adj = txn.init_adj(channel, a.inode_vertex(), b, min, max)?;
    match txn.next_adj(channel, &mut adj) {
    Some(Ok(dest)) => Ok(dest.dest == b),
    Some(Err(e)) => Err(e.into()),
    None => Ok(false),
    }
  • replacement in libpijul/src/pristine/mod.rs at line 730
    [4.44179][3.65478:65543]()
    pub fn debug_to_file<P: AsRef<std::path::Path>, T: ChannelTxnT>(
    [4.44179]
    [4.44237]
    pub fn debug_to_file<P: AsRef<std::path::Path>, T: GraphIter + ChannelTxnT>(
  • replacement in libpijul/src/pristine/mod.rs at line 732
    [4.44250][4.44250:44279]()
    channel: &ChannelRef<T>,
    [4.44250]
    [4.44279]
    channel: &T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 737
    [4.44404][3.65544:65605]()
    let done = debug(txn, &channel.borrow().graph, &mut f)?;
    [4.44404]
    [4.44488]
    let done = debug(txn, T::graph(channel), &mut f)?;
  • replacement in libpijul/src/pristine/mod.rs at line 783
    [4.45354][3.66203:66241]()
    pub fn debug<W: Write, T: GraphTxnT>(
    [4.45354]
    [4.45387]
    pub fn debug<W: Write, T: GraphIter>(
  • replacement in libpijul/src/pristine/mod.rs at line 788
    [4.17878][3.66267:66327]()
    let cursor = txn.cursor_graph(&channel, None).unwrap();
    [4.17878]
    [4.45536]
    let mut cursor = txn.iter_graph(&channel).unwrap();
  • replacement in libpijul/src/pristine/mod.rs at line 792
    [4.45655][3.66328:66350]()
    for x in cursor {
    [4.45655]
    [3.66350]
    while let Some(x) = txn.next_graph(&channel, &mut cursor) {
  • replacement in libpijul/src/pristine/mod.rs at line 805
    [4.612336][3.66384:66420]()
    pub fn check_alive<T: ChannelTxnT>(
    [4.612336]
    [4.45980]
    pub fn check_alive<T: ChannelTxnT + GraphIter>(
  • replacement in libpijul/src/pristine/mod.rs at line 829
    [3.66516][4.46598:46666](),[4.46598][4.46598:46666]()
    stack.push(find_block(txn, &channel, e.dest).unwrap());
    [3.66516]
    [4.614068]
    stack.push(txn.find_block(&channel, e.dest).unwrap());
  • replacement in libpijul/src/pristine/mod.rs at line 836
    [4.46782][3.66517:66568]()
    let cursor = txn.cursor_graph(&channel, None);
    [4.46782]
    [4.46843]
    let mut cursor = txn.iter_graph(&channel).unwrap();
  • replacement in libpijul/src/pristine/mod.rs at line 843
    [4.47042][3.66569:66600]()
    for x in cursor.unwrap() {
    [4.47042]
    [3.66600]
    while let Some(x) = txn.next_graph(&channel, &mut cursor) {
  • replacement in libpijul/src/pristine/mod.rs at line 909
    [4.616217][4.48953:49029]()
    stack.push(find_block_end(txn, &channel, e.dest).unwrap());
    [4.616217]
    [4.616217]
    stack.push(txn.find_block_end(&channel, e.dest).unwrap());
  • replacement in libpijul/src/pristine/mod.rs at line 936
    [4.631][4.631:698]()
    find_block_end(txn, &channel, e.dest).unwrap()
    [4.631]
    [4.698]
    txn.find_block_end(&channel, e.dest).unwrap()
  • replacement in libpijul/src/pristine/mod.rs at line 938
    [4.723][4.723:786]()
    find_block(txn, &channel, e.dest).unwrap()
    [4.723]
    [4.786]
    txn.find_block(&channel, e.dest).unwrap()
  • edit in libpijul/src/pristine/mod.rs at line 990
    [4.618235]
    [4.618235]
    } else if let Ok(dest) = txn.find_block_end(channel, v.dest) {
    dest
  • replacement in libpijul/src/pristine/mod.rs at line 993
    [4.618252][4.49782:49840]()
    find_block_end(txn, channel, v.dest).unwrap()
    [4.618252]
    [4.618309]
    return Ok(());
  • replacement in libpijul/src/pristine/mod.rs at line 1018
    [4.618942][4.49841:49906]()
    } else if let Ok(dest) = find_block(txn, &channel, v.dest) {
    [4.618942]
    [4.619006]
    } else if let Ok(dest) = txn.find_block(&channel, v.dest) {
  • replacement in libpijul/src/pristine/mod.rs at line 1071
    [3.67588][4.620464:620579](),[4.620464][4.620464:620579]()
    pub(crate) cursor: Cursor,
    pub(crate) txn: RT,
    pub(crate) marker: std::marker::PhantomData<(T, K, V)>,
    [3.67588]
    [4.620579]
    pub cursor: Cursor,
    pub txn: RT,
    pub marker: std::marker::PhantomData<(T, K, V)>,
  • replacement in libpijul/src/pristine/mod.rs at line 1077
    [3.67669][4.620676:620791](),[4.620676][4.620676:620791]()
    pub(crate) cursor: Cursor,
    pub(crate) txn: RT,
    pub(crate) marker: std::marker::PhantomData<(T, K, V)>,
    [3.67669]
    [4.620791]
    pub cursor: Cursor,
    pub txn: RT,
    pub marker: std::marker::PhantomData<(T, K, V)>,
  • edit in libpijul/src/pristine/mod.rs at line 1082
    [4.620794][3.67670:67745]()
    initialized_cursor!(graph, Vertex<ChangeId>, Edge, GraphTxnT, GraphError);
  • replacement in libpijul/src/pristine/mod.rs at line 1129
    [3.68780][4.621705:621904](),[4.621705][4.621705:621904]()
    it: Cursor<T, &'txn T, T::GraphCursor, Vertex<ChangeId>, Edge>,
    key: Vertex<ChangeId>,
    min_flag: EdgeFlags,
    /// iter as long as the flag is smaller than this
    max_flag: EdgeFlags,
    [3.68780]
    [4.621904]
    it: T::Adj,
    graph: &'txn T::Graph,
    txn: &'txn T,
  • replacement in libpijul/src/pristine/mod.rs at line 1137
    [4.622037][4.622037:622052](),[4.622052][3.68901:69353](),[3.69353][4.622420:622446](),[4.622420][4.622420:622446](),[4.622446][3.69354:69436](),[3.69436][4.622446:622468](),[4.622446][4.622446:622468](),[4.622468][3.69437:69589](),[3.69589][4.622509:622560](),[4.622509][4.622509:622560](),[4.622661][4.622661:622685]()
    loop {
    match self.it.next() {
    Some(Ok((v, e))) => {
    debug!("adjacent iterator: {:?} {:?}", v, e);
    if v == self.key {
    if e.flag >= self.min_flag {
    if e.flag <= self.max_flag {
    return Some(Ok(e));
    } else {
    return None;
    }
    }
    } else if v > self.key {
    return None;
    }
    }
    Some(Err(e)) => return Some(Err(e)),
    None => {
    debug!("adjacent iterator: over");
    return None;
    }
    }
    }
    [4.622037]
    [4.622685]
    self.txn.next_adj(self.graph, &mut self.it)
  • replacement in libpijul/src/pristine/mod.rs at line 1143
    [4.622774][4.622774:622809]()
    channel: &'channel Channel<T>,
    [4.622774]
    [4.622809]
    channel: &'channel T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 1150
    [4.623002][4.623002:623037]()
    channel: &'channel Channel<T>,
    [4.623002]
    [4.623037]
    channel: &'channel T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 1182
    [4.623603][3.70523:70612]()
    match is_ancestor_of(self.txn, &self.channel.graph, self.key, touched) {
    [4.623603]
    [3.70612]
    match is_ancestor_of(self.txn, T::graph(&self.channel), self.key, touched) {
  • replacement in libpijul/src/pristine/mod.rs at line 1220
    [4.624262][3.71553:71642]()
    match is_ancestor_of(self.txn, &self.channel.graph, self.key, touched) {
    [4.624262]
    [3.71642]
    match is_ancestor_of(self.txn, T::graph(&self.channel), self.key, touched) {
  • replacement in libpijul/src/pristine/mod.rs at line 1256
    [4.625167][4.49957:50029]()
    let parent = find_block_end(txn, channel, p.dest).unwrap();
    [4.625167]
    [4.50029]
    let parent = txn.find_block_end(channel, p.dest).unwrap();
  • edit in libpijul/src/pristine/mod.rs at line 1327
    [3.72946]
    [3.72946]
    /// Split a key `[a, b[` at position `pos`, yielding two keys `[a,
    /// pos[` and `[pos, b[` linked by an edge.
    fn split_block(
    &mut self,
    graph: &mut Self::Graph,
    key: Vertex<ChangeId>,
    pos: ChangePosition,
    buf: &mut Vec<Edge>,
    ) -> Result<(), TxnErr<Self::GraphError>>;
  • edit in libpijul/src/pristine/mod.rs at line 1340
    [3.73004]
    [4.629585]
    fn graph_mut(channel: &mut Self::Channel) -> &mut Self::Graph;
    fn touch_channel(channel: &mut Self::Channel, t: Option<u64>);
  • replacement in libpijul/src/pristine/mod.rs at line 1346
    [4.629836][4.629836:629873]()
    channel: &mut Channel<Self>,
    [4.629836]
    [4.629873]
    channel: &mut Self::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 1355
    [4.630155][4.630155:630192]()
    channel: &mut Channel<Self>,
    [4.630155]
    [4.630192]
    channel: &mut Self::Channel,
  • edit in libpijul/src/pristine/mod.rs at line 1491
    [4.2405][4.50333:50444](),[4.50333][4.50333:50444](),[4.50444][3.75349:75393](),[3.75393][4.50483:50500](),[4.50483][4.50483:50500](),[4.50500][3.75394:75420](),[3.75420][4.50530:50582](),[4.50530][4.50530:50582](),[4.50582][3.75421:75728](),[3.75728][4.50937:51153](),[4.50937][4.50937:51153](),[4.51153][3.75729:75752](),[3.75752][4.51178:51588](),[4.51178][4.51178:51588](),[4.51588][3.75753:75800](),[3.75800][4.51648:51671](),[4.51648][4.51648:51671](),[4.51671][3.75801:75820](),[3.75820][4.51703:52139](),[4.51703][4.51703:52139](),[4.52139][4.52139:52142]()
    /// Split a key `[a, b[` at position `pos`, yielding two keys `[a,
    /// pos[` and `[pos, b[` linked by an edge.
    pub(crate) fn split_block<T: GraphMutTxnT>(
    txn: &mut T,
    graph: &mut T::Graph,
    key: Vertex<ChangeId>,
    pos: ChangePosition,
    buf: &mut Vec<Edge>,
    ) -> Result<(), TxnErr<T::GraphError>> {
    for x in txn.cursor_graph(graph, Some((key, None)))? {
    let (k, v) = x?;
    if k > key {
    break;
    } else if k < key {
    continue;
    }
    buf.push(v)
    }
    for chi in buf.drain(..) {
    assert!(chi.introduced_by != ChangeId::ROOT || chi.flag.contains(EdgeFlags::PSEUDO));
    if chi.flag.contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) {
    put_graph_with_rev(
    txn,
    graph,
    chi.flag - EdgeFlags::PARENT,
    Vertex {
    change: key.change,
    start: key.start,
    end: pos,
    },
    Vertex {
    change: key.change,
    start: pos,
    end: key.end,
    },
    chi.introduced_by,
    )?;
    }
    txn.del_graph(graph, key, Some(chi))?;
    txn.put_graph(
    graph,
    if chi.flag.contains(EdgeFlags::PARENT) {
    Vertex {
    change: key.change,
    start: key.start,
    end: pos,
    }
    } else {
    Vertex {
    change: key.change,
    start: pos,
    end: key.end,
    }
    },
    chi,
    )?;
    }
    Ok(())
    }
  • replacement in libpijul/src/pristine/mod.rs at line 1676
    [4.1993][3.77074:77152]()
    pub fn check_alive_debug<T: ChannelTxnT, C: crate::changestore::ChangeStore>(
    [4.1993]
    [4.2064]
    pub fn check_alive_debug<T: GraphIter + ChannelTxnT, C: crate::changestore::ChangeStore>(
  • replacement in libpijul/src/pristine/mod.rs at line 1679
    [4.2094][3.77153:77179]()
    channel: &Channel<T>,
    [4.2094]
    [4.2123]
    channel: &T::Channel,
  • replacement in libpijul/src/pristine/mod.rs at line 1682
    [4.19271][3.77180:77260]()
    let (alive, reachable) = crate::pristine::check_alive(txn, &channel.graph);
    [4.19271]
    [4.2245]
    let (alive, reachable) = crate::pristine::check_alive(txn, T::graph(channel));
  • replacement in libpijul/src/pristine/mod.rs at line 1708
    [4.835][3.77353:77518]()
    let graph = crate::alive::retrieve::retrieve(txn, &channel.graph, file_).unwrap();
    graph.debug(changes, txn, &channel.graph, false, false, &mut f)?;
    [4.835]
    [4.2938]
    let graph = crate::alive::retrieve::retrieve(txn, T::graph(channel), file_).unwrap();
    graph.debug(changes, txn, T::graph(channel), false, false, &mut f)?;
  • replacement in libpijul/src/pristine/mod.rs at line 1712
    [4.906][3.77519:77591]()
    debug_root(txn, &channel.graph, file.unwrap(), &mut f, false)?;
    [4.906]
    [4.3117]
    debug_root(txn, T::graph(channel), file.unwrap(), &mut f, false)?;
  • replacement in libpijul/src/pristine/channel_dump.rs at line 19
    [3.77789][3.77789:77862]()
    T: ChannelTxnT + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
    [3.77789]
    [3.77862]
    T: ChannelTxnT + GraphIter + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 28
    [4.650408][4.650408:650495]()
    graph: crate::pristine::Cursor<T, RT, T::GraphCursor, Vertex<ChangeId>, Edge>,
    [4.650408]
    [4.650495]
    cursor: T::GraphCursor,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 35
    [4.650588][3.77904:77977]()
    T: ChannelTxnT + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
    [4.650588]
    [4.650608]
    T: ChannelTxnT + GraphIter + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 37
    [4.650645][4.650645:650707]()
    C: std::ops::Deref<Target = crate::pristine::Channel<T>>,
    [4.650645]
    [4.650707]
    C: std::ops::Deref<Target = T::Channel>,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 71
    [4.651272][3.77978:78055]()
    T: ChannelTxnT + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
    [4.651272]
    [4.651296]
    T: ChannelTxnT + GraphIter + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 73
    [4.651345][4.651345:651411]()
    C: std::ops::Deref<Target = crate::pristine::Channel<T>>,
    [4.651345]
    [4.651411]
    C: std::ops::Deref<Target = T::Channel>,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 132
    [4.653409][3.79144:79201](),[4.55640][4.653463:653650](),[3.79201][4.653463:653650](),[4.653463][4.653463:653650](),[4.653650][3.79202:79278]()
    graph: match iter_graph_ref(
    self.txn.clone(),
    &self.channel.graph,
    Vertex::ROOT,
    None,
    ) {
    Ok(x) => x,
    [4.653409]
    [3.79278]
    cursor: match self.txn.iter_graph(T::graph(&self.channel)) {
    Ok(c) => c,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 142
    [4.653890][4.653890:653921]()
    mut graph,
    [4.653890]
    [4.653921]
    mut cursor,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 146
    [4.654008][3.79373:79425]()
    if let Some(x) = graph.next() {
    [4.654008]
    [3.79425]
    if let Some(x) = self.txn.next_graph(T::graph(&self.channel), &mut cursor) {
  • replacement in libpijul/src/pristine/channel_dump.rs at line 153
    [4.654202][4.654202:654241]()
    graph,
    [4.654202]
    [4.654241]
    cursor,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 170
    [4.655267][4.655267:655306]()
    graph,
    [4.655267]
    [4.655306]
    cursor,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 183
    [4.656049][4.656049:656088]()
    graph,
    [4.656049]
    [4.656088]
    cursor,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 207
    [4.657034][3.79797:79870]()
    T: ChannelTxnT + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
    [4.657034]
    [4.657054]
    T: ChannelTxnT + GraphIter + DepsTxnT<DepsError = <T as GraphTxnT>::GraphError>,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 209
    [4.657099][4.657099:657161]()
    C: std::ops::Deref<Target = crate::pristine::Channel<T>>,
    [4.657099]
    [4.657161]
    C: std::ops::Deref<Target = T::Channel>,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 352
    [4.662172][4.662172:662223]()
    let t = channel.apply_counter;
    [4.662172]
    [4.662223]
    let t = T::apply_counter(&channel);
  • replacement in libpijul/src/pristine/channel_dump.rs at line 400
    [4.664478][4.664478:664555]()
    self.txn.put_graph(&mut channel.graph, self.current, edge)?;
    [4.664478]
    [4.664555]
    self.txn
    .put_graph(T::graph_mut(&mut channel), self.current, edge)?;
  • replacement in libpijul/src/pristine/channel_dump.rs at line 420
    [4.664981][4.664981:665011]()
    channel: &mut Channel<T>,
    [4.664981]
    [4.665011]
    channel: &mut T::Channel,
  • replacement in libpijul/src/pristine/channel_dump.rs at line 435
    [4.665488][4.665488:665538]()
    txn.put_graph(&mut channel.graph, u, e)?;
    [4.665488]
    [4.665538]
    txn.put_graph(T::graph_mut(channel), u, e)?;
  • replacement in libpijul/src/pristine/change_id.rs at line 15
    [4.666862][4.666862:666913]()
    pub(crate) const ROOT: ChangeId = ChangeId(0);
    [4.666862]
    [4.666913]
    pub const ROOT: ChangeId = ChangeId(0);
  • replacement in libpijul/src/output/output.rs at line 51
    [4.673568][3.81984:82074]()
    T: TreeMutTxnT + ChannelTxnT + GraphMutTxnT<GraphError = <T as TreeTxnT>::TreeError>,
    [4.673568]
    [4.673584]
    T: TreeMutTxnT + ChannelMutTxnT + GraphMutTxnT<GraphError = <T as TreeTxnT>::TreeError>,
  • replacement in libpijul/src/output/output.rs at line 59
    [4.673712][4.673712:673742]()
    channel: &mut Channel<T>,
    [4.673712]
    [4.673742]
    channel: &mut T::Channel,
  • replacement in libpijul/src/output/output.rs at line 71
    [4.674146][3.82152:82176]()
    &channel.graph,
    [4.674146]
    [4.674163]
    T::graph(channel),
  • replacement in libpijul/src/output/output.rs at line 80
    [4.674352][3.82177:82270]()
    let dead = collect_dead_files(txn, &channel.graph, pending_change_id, Inode::ROOT)?;
    [4.674352]
    [4.674437]
    let dead = collect_dead_files(txn, T::graph(channel), pending_change_id, Inode::ROOT)?;
  • replacement in libpijul/src/output/output.rs at line 99
    [4.9401][4.675184:675254](),[4.675184][4.675184:675254]()
    txn.get_changeset(&channel.changes, u.0.change, None)
    [4.9401]
    [4.675254]
    txn.get_changeset(T::changes(&channel), u.0.change)
  • replacement in libpijul/src/output/output.rs at line 101
    [4.675284][4.675284:675450]()
    .cmp(
    &txn.get_changeset(&channel.changes, v.0.change, None)
    .unwrap(),
    )
    [4.675284]
    [4.675450]
    .cmp(&txn.get_changeset(T::changes(&channel), v.0.change).unwrap())
  • replacement in libpijul/src/output/output.rs at line 162
    [4.677697][3.82659:82758]()
    let dead = collect_dead_files(txn, &channel.graph, pending_change_id, inode)?;
    [4.677697]
    [4.677788]
    let dead =
    collect_dead_files(txn, T::graph(channel), pending_change_id, inode)?;
  • replacement in libpijul/src/output/output.rs at line 174
    [4.678240][3.82759:82799]()
    &channel.graph,
    [4.678240]
    [4.678273]
    T::graph(channel),
  • replacement in libpijul/src/output/output.rs at line 304
    [4.22422][3.83950:84029]()
    fn output_file<T: ChannelTxnT + GraphMutTxnT, P: ChangeStore, W: WorkingCopy>(
    [4.22422]
    [4.683010]
    fn output_file<T: ChannelMutTxnT + GraphMutTxnT, P: ChangeStore, W: WorkingCopy>(
  • replacement in libpijul/src/output/output.rs at line 306
    [4.683027][4.683027:683057]()
    channel: &mut Channel<T>,
    [4.683027]
    [4.683057]
    channel: &mut T::Channel,
  • replacement in libpijul/src/output/output.rs at line 312
    [3.84096][3.84096:84161]()
    let mut l = retrieve(txn, &channel.graph, output_item.pos)?;
    [3.84096]
    [4.683261]
    let mut l = retrieve(txn, T::graph(channel), output_item.pos)?;
  • replacement in libpijul/src/output/output.rs at line 319
    [4.683557][3.84162:84234]()
    let dest = find_block(txn, &channel.graph, edge.dest).unwrap();
    [4.683557]
    [4.683622]
    let dest = txn.find_block(T::graph(channel), edge.dest).unwrap();
  • replacement in libpijul/src/output/output.rs at line 323
    [3.84280][3.84280:84312]()
    &mut channel.graph,
    [3.84280]
    [3.84312]
    T::graph_mut(channel),
  • replacement in libpijul/src/output/mod.rs at line 121
    [3.86385][3.86385:86454]()
    let name_vertex = find_block(txn, channel, e.dest).unwrap();
    [3.86385]
    [4.687480]
    let name_vertex = txn.find_block(channel, e.dest).unwrap();
  • replacement in libpijul/src/output/archive.rs at line 134
    [4.692654][3.88014:88038]()
    &channel.graph,
    [4.692654]
    [4.692672]
    T::graph(&channel),
  • replacement in libpijul/src/output/archive.rs at line 152
    [4.693132][4.693132:693202]()
    txn.get_changeset(&channel.changes, u.0.change, None)
    [4.693132]
    [4.693202]
    txn.get_changeset(T::changes(&channel), u.0.change)
  • replacement in libpijul/src/output/archive.rs at line 154
    [4.693232][4.693232:693398]()
    .cmp(
    &txn.get_changeset(&channel.changes, v.0.change, None)
    .unwrap(),
    )
    [4.693232]
    [4.693398]
    .cmp(&txn.get_changeset(T::changes(&channel), v.0.change).unwrap())
  • replacement in libpijul/src/output/archive.rs at line 192
    [4.695038][3.88212:88252]()
    &channel.graph,
    [4.695038]
    [4.695072]
    T::graph(&channel),
  • replacement in libpijul/src/output/archive.rs at line 200
    [4.695326][3.88278:88373]()
    let mut l = crate::alive::retrieve(txn, &channel.graph, output_item.pos)?;
    [4.695326]
    [4.695414]
    let mut l = crate::alive::retrieve(txn, T::graph(&channel), output_item.pos)?;
  • replacement in libpijul/src/missing_context.rs at line 169
    [4.703817][4.10768:10983]()
    let source = find_block_end(txn, &channel, internal_pos(txn, &e.from, change_id)?)?;
    let target = find_block(
    txn,
    &channel,
    internal_pos(txn, &e.to.start_pos(), change_id)?,
    )?;
    [4.703817]
    [3.89690]
    let source = txn.find_block_end(&channel, internal_pos(txn, &e.from, change_id)?)?;
    let target = txn.find_block(&channel, internal_pos(txn, &e.to.start_pos(), change_id)?)?;
  • replacement in libpijul/src/missing_context.rs at line 199
    [4.11822][4.57803:57866](),[4.704670][4.57803:57866]()
    unknown.insert(find_block_end(txn, channel, v.dest)?);
    [4.11822]
    [4.704732]
    unknown.insert(txn.find_block_end(channel, v.dest)?);
  • replacement in libpijul/src/missing_context.rs at line 290
    [4.58091][4.58091:58156]()
    while let Ok(dest_vertex) = find_block(txn, &channel, pos) {
    [4.58025]
    [4.706347]
    while let Ok(dest_vertex) = txn.find_block(&channel, pos) {
  • replacement in libpijul/src/missing_context.rs at line 439
    [4.710088][4.58559:58613]()
    let p = find_block(txn, channel, edge.dest)?;
    [4.710088]
    [4.14504]
    let p = txn.find_block(channel, edge.dest)?;
  • replacement in libpijul/src/missing_context.rs at line 444
    [4.14730][4.14730:14796]()
    while let Ok(v) = find_block(txn, channel, u.end_pos()) {
    [4.14730]
    [4.14796]
    while let Ok(v) = txn.find_block(channel, u.end_pos()) {
  • replacement in libpijul/src/missing_context.rs at line 476
    [4.712143][4.58943:59006]()
    let p = find_block_end(txn, channel, e.dest)?;
    [4.712143]
    [3.92013]
    let p = txn.find_block_end(channel, e.dest)?;
  • replacement in libpijul/src/missing_context.rs at line 483
    [4.712549][4.59188:59247]()
    let p = find_block(txn, channel, e.dest)?;
    [4.712549]
    [3.92160]
    let p = txn.find_block(channel, e.dest)?;
  • replacement in libpijul/src/missing_context.rs at line 512
    [4.713358][4.59595:59660]()
    while let Ok(dest_vertex) = find_block(txn, &channel, pos) {
    [4.713358]
    [4.59660]
    while let Ok(dest_vertex) = txn.find_block(&channel, pos) {
  • replacement in libpijul/src/missing_context.rs at line 558
    [4.714691][4.59820:59878]()
    let p = find_block_end(txn, channel, edge.dest)?;
    [4.714691]
    [4.714748]
    let p = txn.find_block_end(channel, edge.dest)?;
  • replacement in libpijul/src/missing_context.rs at line 563
    [4.715461][4.59879:59951]()
    while let Ok(u) = find_block_end(txn, channel, v.start_pos()) {
    [4.715461]
    [4.715532]
    while let Ok(u) = txn.find_block_end(channel, v.start_pos()) {
  • replacement in libpijul/src/missing_context.rs at line 594
    [4.716367][4.60069:60143]()
    let parent_dest = find_block_end(txn, channel, parent.dest)?;
    [4.716367]
    [4.716440]
    let parent_dest = txn.find_block_end(channel, parent.dest)?;
  • replacement in libpijul/src/lib.rs at line 98
    [4.60252][3.92946:93116]()
    Base32, ChangeId, Channel, ChannelRef, ChannelTxnT, DepsTxnT, EdgeFlags, GraphTxnT, Hash,
    Inode, Merkle, MutTxnT, OwnedPathId, RemoteRef, TreeTxnT, TxnT, Vertex,
    [4.60252]
    [4.60358]
    Base32, ChangeId, ChannelRef, ChannelTxnT, DepsTxnT, EdgeFlags, GraphTxnT, Hash, Inode, Merkle,
    MutTxnT, OwnedPathId, RemoteRef, TreeTxnT, TxnT, Vertex,
  • replacement in libpijul/src/lib.rs at line 418
    [3.96148][3.96148:96217]()
    self.get_changeset(&channel.borrow().changes, cid, None)
    [3.96148]
    [3.96217]
    self.get_changeset(Self::changes(&channel.borrow()), cid)
  • replacement in libpijul/src/lib.rs at line 427
    [4.60651][4.60651:60694]()
    channel: &pristine::Channel<Self>,
    [4.60651]
    [4.60694]
    channel: &Self::Channel,
  • replacement in libpijul/src/lib.rs at line 430
    [3.96342][3.96342:96411]()
    pristine::is_alive(self, &channel.graph, a).map_err(|e| e.0)
    [3.96342]
    [4.730324]
    pristine::is_alive(self, Self::graph(channel), a).map_err(|e| e.0)
  • replacement in libpijul/src/lib.rs at line 433
    [4.730331][3.96412:96546]()
    fn current_state(
    &self,
    channel: &pristine::Channel<Self>,
    ) -> Result<pristine::Merkle, Self::GraphError> {
    [4.730331]
    [3.96546]
    fn current_state(&self, channel: &Self::Channel) -> Result<pristine::Merkle, Self::GraphError> {
  • replacement in libpijul/src/lib.rs at line 439
    [4.730379][4.730379:730431]()
    channel: &'channel pristine::Channel<Self>,
    [4.730379]
    [4.730431]
    channel: &'channel Self::Channel,
  • replacement in libpijul/src/lib.rs at line 450
    [4.61081][4.61081:61133]()
    channel: &'channel pristine::Channel<Self>,
    [4.61081]
    [4.61133]
    channel: &'channel Self::Channel,
  • replacement in libpijul/src/lib.rs at line 459
    [4.61387][4.61387:61439]()
    channel: &'channel pristine::Channel<Self>,
    [4.61387]
    [4.61439]
    channel: &'channel Self::Channel,
  • replacement in libpijul/src/lib.rs at line 468
    [4.730639][4.730639:730691]()
    channel: &'channel pristine::Channel<Self>,
    [4.730639]
    [4.730691]
    channel: &'channel Self::Channel,
  • replacement in libpijul/src/lib.rs at line 479
    [4.61756][4.61756:61799]()
    channel: &pristine::Channel<Self>,
    [4.61756]
    [4.61799]
    channel: &Self::Channel,
  • replacement in libpijul/src/lib.rs at line 500
    [3.97693][3.97693:97762]()
    .get_revchangeset(&channel.borrow().revchanges, n, None)
    [3.97693]
    [3.97762]
    .get_revchangeset(Self::rev_changes(&channel.borrow()), n)
  • replacement in libpijul/src/lib.rs at line 515
    [4.62122][4.731332:731399](),[3.98064][4.731332:731399](),[4.731332][4.731332:731399]()
    self.get_changeset(&channel.borrow().changes, h, None)
    [3.98064]
    [3.98065]
    self.get_changeset(Self::changes(&channel.borrow()), h)
  • replacement in libpijul/src/lib.rs at line 581
    [4.733390][3.99075:99143]()
    let mut graph = alive::retrieve(self, &channel.graph, v0)?;
    [4.733390]
    [4.733451]
    let mut graph = alive::retrieve(self, Self::graph(&channel), v0)?;
  • replacement in libpijul/src/lib.rs at line 607
    [4.62357][4.62357:62395]()
    fn iter_adjacent<'db, 'txn: 'db>(
    [4.62357]
    [4.62395]
    fn iter_adjacent<'txn>(
  • replacement in libpijul/src/lib.rs at line 609
    [4.62415][3.99356:99401]()
    graph: &'db pristine::Channel<Self>,
    [4.62415]
    [4.62462]
    graph: &'txn Self::Channel,
  • replacement in libpijul/src/lib.rs at line 614
    [3.99496][3.99496:99573]()
    pristine::iter_adjacent(self, &graph.graph, key, min_flag, max_flag)
    [3.99496]
    [4.62703]
    pristine::iter_adjacent(self, Self::graph(graph), key, min_flag, max_flag)
  • replacement in libpijul/src/fs.rs at line 475
    [4.13264][3.107114:107174]()
    pub struct GraphDescendants<'txn, 'channel, T: GraphTxnT> {
    [4.13264]
    [4.13319]
    pub struct GraphDescendants<'txn, T: GraphTxnT> {
  • replacement in libpijul/src/fs.rs at line 477
    [4.13337][3.107175:107208]()
    channel: &'channel T::Graph,
    [4.13337]
    [4.13372]
    channel: &'txn T::Graph,
  • replacement in libpijul/src/fs.rs at line 482
    [4.752110][3.107209:107295]()
    impl<'txn, 'channel, T: GraphTxnT> Iterator for GraphDescendants<'txn, 'channel, T> {
    [4.752110]
    [3.107295]
    impl<'txn, T: GraphTxnT> Iterator for GraphDescendants<'txn, T> {
  • replacement in libpijul/src/fs.rs at line 489
    [3.107465][3.107465:107551]()
    let dest = match find_block(self.txn, self.channel, child.dest) {
    [3.107465]
    [3.107551]
    let dest = match self.txn.find_block(self.channel, child.dest) {
  • replacement in libpijul/src/fs.rs at line 534
    [4.14870][3.108948:109009]()
    pub fn iter_graph_descendants<'txn, 'channel, T: GraphTxnT>(
    [4.14870]
    [4.14926]
    pub fn iter_graph_descendants<'txn, T: GraphTxnT>(
  • replacement in libpijul/src/fs.rs at line 536
    [4.14944][3.109010:109043]()
    channel: &'channel T::Graph,
    [4.14944]
    [4.14979]
    channel: &'txn T::Graph,
  • replacement in libpijul/src/fs.rs at line 538
    [4.15008][3.109044:109110]()
    ) -> Result<GraphDescendants<'txn, 'channel, T>, T::GraphError> {
    [4.15008]
    [3.109110]
    ) -> Result<GraphDescendants<'txn, T>, T::GraphError> {
  • replacement in libpijul/src/fs.rs at line 559
    [4.752344][3.109185:109279]()
    pub struct GraphChildren<'txn, 'channel, 'changes, T: GraphTxnT, P: ChangeStore + 'changes> {
    [4.752344]
    [4.752433]
    pub struct GraphChildren<'txn, 'changes, T: GraphTxnT, P: ChangeStore + 'changes> {
  • replacement in libpijul/src/fs.rs at line 561
    [4.752451][3.109280:109313]()
    channel: &'channel T::Graph,
    [4.752451]
    [4.752486]
    channel: &'txn T::Graph,
  • replacement in libpijul/src/fs.rs at line 567
    [4.752569][3.109314:109395](),[3.109395][4.752645:752699](),[4.752645][4.752645:752699]()
    impl<'txn, 'channel, 'changes, T: GraphTxnT, P: ChangeStore + 'changes> Iterator
    for GraphChildren<'txn, 'channel, 'changes, T, P>
    [4.752569]
    [4.752699]
    impl<'txn, 'changes, T: GraphTxnT, P: ChangeStore + 'changes> Iterator
    for GraphChildren<'txn, 'changes, T, P>
  • replacement in libpijul/src/fs.rs at line 576
    [3.109614][3.109614:109690]()
    let dest = find_block(self.txn, self.channel, child.dest).unwrap();
    [3.109614]
    [3.109690]
    let dest = self.txn.find_block(self.channel, child.dest).unwrap();
  • replacement in libpijul/src/fs.rs at line 606
    [4.753898][4.753898:753958]()
    pub fn iter_graph_children<'txn, 'channel, 'changes, T, P>(
    [4.753898]
    [4.753958]
    pub fn iter_graph_children<'txn, 'changes, T, P>(
  • replacement in libpijul/src/fs.rs at line 609
    [4.754002][3.110619:110652]()
    channel: &'channel T::Graph,
    [4.754002]
    [4.754037]
    channel: &'txn T::Graph,
  • replacement in libpijul/src/fs.rs at line 611
    [4.754066][3.110653:110727]()
    ) -> Result<GraphChildren<'txn, 'channel, 'changes, T, P>, T::GraphError>
    [4.754066]
    [4.754117]
    ) -> Result<GraphChildren<'txn, 'changes, T, P>, T::GraphError>
  • replacement in libpijul/src/fs.rs at line 635
    [4.754635][3.110840:110935]()
    pub struct GraphBasenames<'txn, 'channel, 'changes, T: GraphTxnT, P: ChangeStore + 'changes> {
    [4.754635]
    [4.754725]
    pub struct GraphBasenames<'txn, 'changes, T: GraphTxnT, P: ChangeStore + 'changes> {
  • replacement in libpijul/src/fs.rs at line 637
    [4.754743][3.110936:110969]()
    channel: &'channel T::Graph,
    [4.754743]
    [4.754778]
    channel: &'txn T::Graph,
  • replacement in libpijul/src/fs.rs at line 643
    [4.754861][3.110970:111051](),[3.111051][4.754937:754992](),[4.754937][4.754937:754992]()
    impl<'txn, 'channel, 'changes, T: GraphTxnT, P: ChangeStore + 'changes> Iterator
    for GraphBasenames<'txn, 'channel, 'changes, T, P>
    [4.754861]
    [4.754992]
    impl<'txn, 'changes, T: GraphTxnT, P: ChangeStore + 'changes> Iterator
    for GraphBasenames<'txn, 'changes, T, P>
  • replacement in libpijul/src/fs.rs at line 654
    [4.51][4.63128:63214](),[3.111342][4.63128:63214](),[4.755146][4.63128:63214]()
    let dest = find_block_end(self.txn, &self.channel, parent.dest).unwrap();
    [3.111342]
    [4.755231]
    let dest = self.txn.find_block_end(&self.channel, parent.dest).unwrap();
  • replacement in libpijul/src/fs.rs at line 685
    [4.756254][4.756254:756309]()
    pub fn iter_basenames<'txn, 'channel, 'changes, T, P>(
    [4.756254]
    [4.756309]
    pub fn iter_basenames<'txn, 'changes, T, P>(
  • replacement in libpijul/src/fs.rs at line 688
    [4.756353][3.111787:111820]()
    channel: &'channel T::Graph,
    [4.756353]
    [4.756388]
    channel: &'txn T::Graph,
  • replacement in libpijul/src/fs.rs at line 690
    [4.756417][3.111821:111896]()
    ) -> Result<GraphBasenames<'txn, 'channel, 'changes, T, P>, T::GraphError>
    [4.756417]
    [4.756469]
    ) -> Result<GraphBasenames<'txn, 'changes, T, P>, T::GraphError>
  • replacement in libpijul/src/fs.rs at line 725
    [4.757490][3.112131:112164]()
    ) -> Result<(), T::GraphError> {
    [4.757490]
    [4.757532]
    ) -> Result<(), TxnErr<T::GraphError>> {
  • edit in libpijul/src/fs.rs at line 736
    [4.757913][4.757913:758101]()
    let e = Edge {
    flag: EdgeFlags::FOLDER | EdgeFlags::PARENT,
    dest: Position::ROOT,
    introduced_by: ChangeId::ROOT,
    };
  • replacement in libpijul/src/fs.rs at line 738
    [4.758177][3.112165:112513]()
    for x in iter_graph(txn, &graph, cur_key.inode_vertex(), Some(e)).map_err(|e| e.0)? {
    let (k, parent) = x.map_err(|e| e.0)?;
    if k != cur_key.inode_vertex() {
    break;
    } else if !parent.flag.contains(EdgeFlags::FOLDER | EdgeFlags::PARENT) {
    continue;
    [4.758177]
    [3.112513]
    let f = EdgeFlags::parent_folder();
    for parent in iter_adjacent(
    txn,
    &graph,
    cur_key.inode_vertex(),
    f,
    f | EdgeFlags::PSEUDO,
    )? {
    let parent_dest = txn.find_block_end(&graph, parent?.dest).unwrap();
    for grandparent in
    iter_adjacent(txn, &graph, parent_dest, f, f | EdgeFlags::PSEUDO)?
    {
    stack.push((grandparent?.dest, false))
  • edit in libpijul/src/fs.rs at line 752
    [3.112531][3.112531:113110](),[3.113110][4.758898:758916](),[4.758898][4.758898:758916]()
    let parent_dest = find_block_end(txn, &graph, parent.dest).unwrap();
    for x in iter_graph(txn, &graph, parent_dest, Some(e)).map_err(|e| e.0)? {
    let (k, grandparent) = x.map_err(|e| e.0)?;
    if k != parent_dest {
    break;
    }
    if grandparent
    .flag
    .contains(EdgeFlags::FOLDER | EdgeFlags::PARENT)
    {
    stack.push((grandparent.dest, false))
    }
    }
  • replacement in libpijul/src/fs.rs at line 764
    [4.759117][3.113190:113216]()
    channel: &Channel<T>,
    [4.759117]
    [4.759146]
    channel: &T::Channel,
  • replacement in libpijul/src/fs.rs at line 776
    [4.759605][3.113295:113391]()
    for name in iter_adjacent(txn, &channel.graph, current.inode_vertex(), flag0, flag1)? {
    [4.759605]
    [3.113391]
    for name in iter_adjacent(txn, T::graph(channel), current.inode_vertex(), flag0, flag1)? {
  • replacement in libpijul/src/fs.rs at line 778
    [3.113421][3.113421:113502]()
    let name_dest = find_block(txn, &channel.graph, name.dest).unwrap();
    [3.113421]
    [4.759767]
    let name_dest = txn.find_block(T::graph(channel), name.dest).unwrap();
  • replacement in libpijul/src/fs.rs at line 787
    [4.760027][4.760027:760104]()
    .get_changeset(&channel.changes, name.dest.change, None)
    [4.760027]
    [4.760104]
    .get_changeset(T::changes(&channel), name.dest.change)
  • replacement in libpijul/src/fs.rs at line 801
    [4.760549][3.113644:113722]()
    current = iter_adjacent(txn, &channel.graph, next, flag0, flag1)?
    [4.760549]
    [4.760636]
    current = iter_adjacent(txn, T::graph(channel), next, flag0, flag1)?
  • replacement in libpijul/src/fs.rs at line 815
    [4.761025][4.761025:761051]()
    channel: &Channel<T>,
    [4.761025]
    [4.761051]
    channel: &T::Channel,
  • replacement in libpijul/src/fs.rs at line 828
    [4.761463][3.113959:114035]()
    let inode_vertex = find_block_end(txn, &channel.graph, v).unwrap();
    [4.761463]
    [4.761532]
    let inode_vertex = txn.find_block_end(T::graph(channel), v).unwrap();
  • replacement in libpijul/src/fs.rs at line 830
    [4.761584][3.114036:114126]()
    for name in iter_adjacent(txn, &channel.graph, v.inode_vertex(), flag0, flag1)? {
    [4.761584]
    [3.114126]
    for name in iter_adjacent(txn, T::graph(channel), v.inode_vertex(), flag0, flag1)? {
  • replacement in libpijul/src/fs.rs at line 837
    [4.761841][3.114157:114231]()
    .get_changeset(&channel.changes, name.dest.change, None)?
    [4.761841]
    [4.761914]
    .get_changeset(T::changes(&channel), name.dest.change)?
  • replacement in libpijul/src/fs.rs at line 840
    [4.761942][3.114232:114317]()
    let name_dest = find_block_end(txn, &channel.graph, name.dest).unwrap();
    [4.761942]
    [4.762020]
    let name_dest = txn.find_block_end(T::graph(channel), name.dest).unwrap();
  • replacement in libpijul/src/fs.rs at line 843
    [3.114351][3.114351:114435]()
    for e in iter_adjacent(txn, &channel.graph, name_dest, flag0, flag1)? {
    [3.114351]
    [3.114435]
    for e in iter_adjacent(txn, T::graph(channel), name_dest, flag0, flag1)? {
  • replacement in libpijul/src/find_alive.rs at line 20
    [4.764078][4.64453:64512]()
    let vertex = find_block(txn, &channel, elt.dest)?;
    [4.764078]
    [4.764136]
    let vertex = txn.find_block(&channel, elt.dest)?;
  • replacement in libpijul/src/find_alive.rs at line 69
    [4.765872][4.64722:64785]()
    let vertex = find_block_end(txn, &channel, elt.dest)?;
    [4.765872]
    [4.765934]
    let vertex = txn.find_block_end(&channel, elt.dest)?;
  • replacement in libpijul/src/diff/mod.rs at line 54
    [4.794222][4.794222:794252]()
    channel: &Channel<T>,
    [4.794222]
    [4.794252]
    channel: &T::Channel,
  • replacement in libpijul/src/diff/mod.rs at line 67
    [4.5921][3.115956:116037]()
    self.diff_binary(changes, txn, &channel.graph, path, inode, a, &b)?;
    [4.5921]
    [4.5994]
    self.diff_binary(changes, txn, T::graph(channel), path, inode, a, &b)?;
  • replacement in libpijul/src/diff/mod.rs at line 122
    [4.796903][3.116038:116074]()
    &channel.graph,
    [4.796903]
    [4.796932]
    T::graph(channel),
  • replacement in libpijul/src/change.rs at line 202
    [4.835940][3.117860:117886]()
    channel: &Channel<T>,
    [4.835940]
    [4.835969]
    channel: &T::Channel,
  • replacement in libpijul/src/change.rs at line 236
    [4.837398][3.117948:118123]()
    add_zombie_deps_from(txn, &channel.graph, &mut zombie_deps, e.from)?;
    add_zombie_deps_to(txn, &channel.graph, &mut zombie_deps, e.to)?
    [4.837398]
    [4.837559]
    add_zombie_deps_from(txn, T::graph(channel), &mut zombie_deps, e.from)?;
    add_zombie_deps_to(txn, T::graph(channel), &mut zombie_deps, e.to)?
  • replacement in libpijul/src/change.rs at line 250
    [3.118290][4.66061:66114](),[4.540][4.66061:66114]()
    txn.get_changeset(&channel.changes, a, None)
    [3.118290]
    [3.118291]
    txn.get_changeset(T::changes(&channel), a)
  • replacement in libpijul/src/change.rs at line 252
    [3.118313][3.118313:118386]()
    .cmp(&txn.get_changeset(&channel.changes, b, None).unwrap())
    [3.118313]
    [4.644]
    .cmp(&txn.get_changeset(T::changes(&channel), b).unwrap())
  • replacement in libpijul/src/change.rs at line 258
    [3.118499][4.66179:66232](),[4.851][4.66179:66232]()
    txn.get_changeset(&channel.changes, a, None)
    [3.118499]
    [3.118500]
    txn.get_changeset(T::changes(&channel), a)
  • replacement in libpijul/src/change.rs at line 260
    [3.118522][3.118522:118595]()
    .cmp(&txn.get_changeset(&channel.changes, b, None).unwrap())
    [3.118522]
    [4.955]
    .cmp(&txn.get_changeset(T::changes(&channel), b).unwrap())
  • replacement in libpijul/src/change.rs at line 294
    [4.838610][4.66452:66514]()
    let from = find_block_end(txn, channel, e_from).unwrap();
    [4.838610]
    [3.119214]
    let from = txn.find_block_end(channel, e_from).unwrap();
  • replacement in libpijul/src/change.rs at line 327
    [4.839506][4.66605:66665]()
    let mut to = find_block(txn, channel, to_pos).unwrap();
    [4.839506]
    [4.839565]
    let mut to = txn.find_block(channel, to_pos).unwrap();
  • replacement in libpijul/src/change.rs at line 347
    [4.840186][4.66759:66821]()
    to = find_block(txn, channel, to.end_pos()).unwrap();
    [4.840186]
    [4.840247]
    to = txn.find_block(channel, to.end_pos()).unwrap();
  • replacement in libpijul/src/change.rs at line 354
    [3.119958][3.119958:119984]()
    channel: &Channel<T>,
    [3.119958]
    [3.119984]
    channel: &T::Channel,
  • replacement in libpijul/src/change.rs at line 367
    [4.840736][3.120109:120185]()
    let time = txn.get_changeset(&channel.changes, id, None)?.unwrap();
    [4.840736]
    [4.840811]
    let time = txn.get_changeset(T::changes(&channel), id)?.unwrap();
  • replacement in libpijul/src/change.rs at line 395
    [4.841723][3.120334:120427]()
    let time = if let Some(time) = txn.get_changeset(&channel.changes, dep, None)? {
    [4.841723]
    [4.841815]
    let time = if let Some(time) = txn.get_changeset(T::changes(&channel), dep)? {
  • replacement in libpijul/src/change.rs at line 400
    [4.841957][4.841957:841993]()
    channel.name(),
    [4.841957]
    [4.841993]
    T::name(channel),
  • replacement in libpijul/src/apply.rs at line 98
    [3.124523][3.124523:124598]()
    if txn.get_changeset(&channel.changes, int, None)?.is_some() {
    [3.124523]
    [4.945329]
    if txn.get_changeset(T::changes(&channel), int)?.is_some() {
  • replacement in libpijul/src/apply.rs at line 145
    [4.267][3.124900:124971]()
    .get_changeset(&channel.changes, change_id, None)?
    [4.267]
    [4.337]
    .get_changeset(T::changes(&channel), change_id)?
  • replacement in libpijul/src/apply.rs at line 161
    [3.125043][3.125043:125117]()
    txn.get_changeset(&channel.changes, int, None)?.is_some()
    [3.125043]
    [4.946906]
    txn.get_changeset(T::changes(&channel), int)?.is_some()
  • replacement in libpijul/src/apply.rs at line 212
    [4.948744][4.948744:948774]()
    channel: &mut Channel<T>,
    [4.948744]
    [4.948774]
    channel: &mut T::Channel,
  • replacement in libpijul/src/apply.rs at line 219
    [4.948928][4.948928:948963]()
    let n = channel.apply_counter;
    [4.948928]
    [3.125568]
    let n = T::apply_counter(channel);
  • replacement in libpijul/src/apply.rs at line 221
    [3.125585][3.125585:125678]()
    if let Some(m) = txn.put_changes(channel, change_id, channel.apply_counter, hash)? {
    [3.125585]
    [3.125678]
    if let Some(m) = txn.put_changes(channel, change_id, T::apply_counter(channel), hash)? {
  • replacement in libpijul/src/apply.rs at line 233
    [3.125846][3.125846:125932]()
    put_newvertex(txn, &mut channel.graph, change, ws, change_id, n)?
    [3.125846]
    [3.125932]
    put_newvertex(txn, T::graph_mut(channel), change, ws, change_id, n)?
  • replacement in libpijul/src/apply.rs at line 240
    [4.949815][3.125951:126003]()
    &mut channel.graph,
    [4.949815]
    [4.949856]
    T::graph_mut(channel),
  • replacement in libpijul/src/apply.rs at line 261
    [3.126170][3.126170:126218]()
    &mut channel.graph,
    [3.126170]
    [3.126218]
    T::graph_mut(channel),
  • replacement in libpijul/src/apply.rs at line 270
    [4.1231][3.126480:126528]()
    &mut channel.graph,
    [4.1231]
    [4.1268]
    T::graph_mut(channel),
  • replacement in libpijul/src/apply.rs at line 285
    [4.951686][3.126529:126603]()
    clean_obsolete_pseudo_edges(txn, &mut channel.graph, ws, change_id)?;
    [4.951686]
    [4.951738]
    clean_obsolete_pseudo_edges(txn, T::graph_mut(channel), ws, change_id)?;
  • replacement in libpijul/src/apply.rs at line 288
    [4.951780][3.126604:126737]()
    repair_missing_contexts(txn, &mut channel.graph, ws, change_id, change)?;
    repair_cyclic_paths(txn, &mut channel.graph, ws)?;
    [4.951780]
    [4.951910]
    repair_missing_contexts(txn, T::graph_mut(channel), ws, change_id, change)?;
    repair_cyclic_paths(txn, T::graph_mut(channel), ws)?;
  • replacement in libpijul/src/apply.rs at line 291
    [4.951945][4.17577:17598]()
    channel.touch();
    [4.951945]
    [4.952082]
    T::touch_channel(channel, None);
  • replacement in libpijul/src/apply.rs at line 320
    [3.127096][3.127096:127171]()
    if txn.get_changeset(&channel.changes, int, None)?.is_some() {
    [3.127096]
    [4.240]
    if txn.get_changeset(T::changes(&channel), int)?.is_some() {
  • replacement in libpijul/src/apply.rs at line 331
    [4.953296][3.127225:127287]()
    update_inode(txn, &channel.graph, internal, update)?;
    [4.953296]
    [4.953352]
    update_inode(txn, T::graph(&channel), internal, update)?;
  • replacement in libpijul/src/apply.rs at line 474
    [4.957945][3.128953:129002]()
    let k = find_block_end(txn, graph, up)?;
    [4.957945]
    [4.957995]
    let k = txn.find_block_end(graph, up)?;
  • replacement in libpijul/src/apply.rs at line 482
    [4.18835][3.129003:129067]()
    split_block(txn, graph, k, up.pos, &mut ws.adjbuf)?
    [4.18835]
    [4.958502]
    txn.split_block(graph, k, up.pos, &mut ws.adjbuf)?
  • replacement in libpijul/src/apply.rs at line 518
    [3.129372][3.129372:129416]()
    let k = find_block(txn, &graph, down)?;
    [3.129372]
    [4.959540]
    let k = txn.find_block(&graph, down)?;
  • replacement in libpijul/src/apply.rs at line 525
    [4.19263][3.129417:129479]()
    split_block(txn, graph, k, down.pos, &mut ws.adjbuf)?
    [4.19263]
    [4.960115]
    txn.split_block(graph, k, down.pos, &mut ws.adjbuf)?
  • replacement in libpijul/src/apply.rs at line 639
    [4.20045][3.130512:130582]()
    split_block(txn, graph, target, n.to.end, &mut ws.adjbuf)
    [4.20045]
    [3.130582]
    txn.split_block(graph, target, n.to.end, &mut ws.adjbuf)
  • replacement in libpijul/src/apply.rs at line 665
    [4.966024][3.131022:131113]()
    target = find_block(txn, graph, target.end_pos()).map_err(LocalApplyError::from)?;
    [4.966024]
    [4.966085]
    target = txn
    .find_block(graph, target.end_pos())
    .map_err(LocalApplyError::from)?;
  • replacement in libpijul/src/apply.rs at line 683
    [4.966496][4.70043:70131]()
    let mut source = find_block_end(txn, &channel, internal_pos(txn, &from, change)?)?;
    [4.966496]
    [4.966582]
    let mut source = txn.find_block_end(&channel, internal_pos(txn, &from, change)?)?;
  • replacement in libpijul/src/apply.rs at line 688
    [4.20332][3.131249:131319]()
    split_block(txn, channel, source, from.pos, &mut ws.adjbuf)?;
    [4.20332]
    [4.967333]
    txn.split_block(channel, source, from.pos, &mut ws.adjbuf)?;
  • replacement in libpijul/src/apply.rs at line 705
    [4.20382][4.70250:70306](),[4.967745][4.70250:70306]()
    let mut target = find_block(txn, channel, to_pos)?;
    [4.20382]
    [4.967800]
    let mut target = txn.find_block(channel, to_pos)?;
  • replacement in libpijul/src/apply.rs at line 710
    [4.20449][3.131455:131525]()
    split_block(txn, channel, target, to.start, &mut ws.adjbuf)?;
    [4.20449]
    [4.968526]
    txn.split_block(channel, target, to.start, &mut ws.adjbuf)?;
  • replacement in libpijul/src/apply.rs at line 734
    [4.969142][4.70404:70467]()
    let p = find_block_end(txn, channel, e.dest)?;
    [4.969142]
    [3.131679]
    let p = txn.find_block_end(channel, e.dest)?;
  • replacement in libpijul/src/apply.rs at line 739
    [4.969334][4.70515:70574](),[4.70574][4.969392:969434](),[4.969392][4.969392:969434]()
    let p = find_block(txn, channel, e.dest)?;
    apply.children.insert(p);
    [4.969334]
    [4.969434]
    let p = txn.find_block(channel, e.dest)?;
    if !e.flag.contains(EdgeFlags::PSEUDO) || is_alive(txn, channel, p).unwrap() {
    apply.children.insert(p);
    }
  • edit in libpijul/src/apply.rs at line 786
    [4.20720][3.132083:132150]()
    debug_assert!(is_alive(txn, channel, c).unwrap());
  • replacement in libpijul/src/apply.rs at line 801
    [4.20940][4.70753:70822](),[4.971697][4.70753:70822]()
    if let Ok(dest) = find_block_end(txn, channel, p.dest) {
    [4.20940]
    [4.971765]
    if let Ok(dest) = txn.find_block_end(channel, p.dest) {
  • replacement in libpijul/src/apply.rs at line 806
    [4.971862][4.1588:1656]()
    } else if let Ok(dest) = find_block(txn, channel, p.dest) {
    [4.971862]
    [4.1656]
    } else if let Ok(dest) = txn.find_block(channel, p.dest) {
  • replacement in libpijul/src/apply.rs at line 893
    [4.22391][4.22391:22475]()
    let up = find_block_end(txn, channel, internal_pos(txn, &up, change_id)?)?;
    [4.22391]
    [3.132761]
    let up = txn.find_block_end(channel, internal_pos(txn, &up, change_id)?)?;
  • replacement in libpijul/src/apply.rs at line 924
    [3.132985][4.23334:23418](),[4.23334][4.23334:23418]()
    let down = find_block(txn, channel, internal_pos(txn, &down, change_id)?)?;
    [3.132985]
    [3.132986]
    let down = txn.find_block(channel, internal_pos(txn, &down, change_id)?)?;
  • replacement in libpijul/src/apply.rs at line 1050
    [4.26650][4.26650:26720]()
    let anc = find_block_end(txn, channel, parent.dest)?;
    [4.26650]
    [4.26720]
    let anc = txn.find_block_end(channel, parent.dest)?;
  • edit in libpijul/src/apply.rs at line 1092
    [4.980801]
    [4.980801]
    ws.parents.clear();
  • replacement in libpijul/src/apply.rs at line 1160
    [4.982036][4.28349:28416]()
    stack.push(find_block_end(txn, channel, parent.dest)?)
    [4.982036]
    [4.982135]
    stack.push(txn.find_block_end(channel, parent.dest)?)
  • replacement in libpijul/src/alive/retrieve.rs at line 75
    [3.134666][3.134666:134738]()
    let vertex = crate::pristine::find_block(txn, graph, pos).unwrap();
    [3.134666]
    [3.134738]
    let vertex = txn.find_block(graph, pos).unwrap();
  • replacement in libpijul/src/alive/retrieve.rs at line 117
    [4.988137][3.135534:135616]()
    let dest = crate::pristine::find_block(txn, channel, edge.dest).unwrap();
    [4.988137]
    [4.988202]
    let dest = txn.find_block(channel, edge.dest).unwrap();
  • replacement in libpijul/src/alive/output.rs at line 19
    [4.988935][4.988935:988961]()
    channel: &Channel<T>,
    [4.988935]
    [4.988961]
    channel: &T::Channel,
  • replacement in libpijul/src/alive/output.rs at line 95
    [4.991609][4.991609:991639]()
    channel: &Channel<T>,
    [4.991609]
    [4.991639]
    channel: &T::Channel,
  • replacement in libpijul/src/alive/output.rs at line 104
    [4.991876][3.136169:136261]()
    txn.get_changeset(&channel.changes, graph[*x].vertex.change, None)?
    [4.991876]
    [4.991967]
    txn.get_changeset(T::changes(&channel), graph[*x].vertex.change)?
  • replacement in libpijul/src/alive/output.rs at line 115
    [3.136498][3.136498:136583]()
    .debug(changes, txn, &channel.graph, false, true, f)
    [3.136498]
    [3.136583]
    .debug(changes, txn, T::graph(channel), false, true, f)
  • replacement in libpijul/src/alive/output.rs at line 189
    [4.994374][4.994374:994400]()
    channel: &Channel<T>,
    [4.994374]
    [4.994400]
    channel: &T::Channel,
  • replacement in libpijul/src/alive/output.rs at line 200
    [4.994757][3.137591:137675]()
    graph.collect_forward_edges(txn, &channel.graph, &scc, &forward_scc, forward)?;
    [4.994757]
    [4.994833]
    graph.collect_forward_edges(txn, T::graph(channel), &scc, &forward_scc, forward)?;
  • replacement in libpijul/src/alive/debug.rs at line 63
    [4.1016628][3.138084:138322]()
    for x in crate::pristine::iter_graph(txn, &channel, line.vertex, None).unwrap() {
    let (k, v) = x.unwrap();
    if k != line.vertex {
    break;
    }
    [4.1016628]
    [4.1016807]
    for v in crate::pristine::iter_adj_all(txn, &channel, line.vertex).unwrap() {
    let v = v.unwrap();
  • replacement in flake.nix at line 21
    [4.248][4.248:357]()
    channel = "1.47.0";
    sha256 = "1hkisci4as93hx8ybf13bmxkj9jsvd4a9ilvjmw6n64w4jkc1nk9";
    [4.248]
    [4.357]
    channel = "1.49.0";
    hash = "sha256-KCh2UBGtdlBJ/4UOqZlxUtcyefv7MH1neoVNV4z0nWs=";
  • replacement in Cargo.lock at line 1355
    [4.1067][4.476:491]()
    "rand 0.7.3",
    [4.1067]
    [4.1064359]
    "rand 0.8.0",