Started fixing the tests for parallel record/output

[?]
Apr 28, 2021, 8:13 PM
TIPZ7UXNIZ3UMIXDUP2M33FUP7LY3XM2NX424ZE4EO5V7CZTOGXQC

Dependencies

  • [2] I24UEJQL Various post-fire fixes
  • [3] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [4] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [5] GHO6DWPI Refactoring iterators
  • [6] 3M7WBE24 Re-adding anyhow in the tests of libpijul
  • [7] SPA2OL5I keep-changes feature (default) to avoid deleting problematic changes
  • [8] YN63NUZO Sanakirja 1.0
  • [9] I52XSRUH Massive cleanup, and simplification
  • [10] Q45QHPO4 Feedback on network stuff
  • [11] IIV3EL2X Cleanup, formatting, and fixing the Git feature
  • [12] NA5I4WYN Fixing the inverse of conflict resolutions
  • [13] BZSC7VMY address clippy lints
  • [14] X7OHUPL5 Fixing a bug in unrecord, and fixing the tests
  • [15] 3YDPHBAN address non-controversial clippy lints
  • [16] 7UPL3Y2A Unrecord: don't restore the same unrecorded file deletion twice in the inodes and tree tables

Change contents

  • edit in libpijul/src/tests/unrecord.rs at line 3
    [3.248860]
    [3.248860]
    use std::io::Write;
  • replacement in libpijul/src/tests/unrecord.rs at line 11
    [3.249038][3.249038:249094]()
    let mut repo = working_copy::memory::Memory::new();
    [3.249038]
    [3.249094]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 17
    [3.249265][2.30245:30293](),[2.30293][3.249304:249335](),[3.249304][3.249304:249335]()
    let mut txn = env.mut_txn_begin().unwrap();
    txn.add_file("dir/file")?;
    [3.249265]
    [3.249335]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    txn.write().unwrap().add_file("dir/file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 20
    [3.249336][3.249336:249471]()
    let mut channel = txn.open_or_create_channel("main")?;
    let _h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.249336]
    [3.249471]
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    let _h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 23
    [3.249472][3.0:62](),[3.62][3.249510:249573](),[3.249510][3.249510:249573]()
    repo.write_file::<_, std::io::Error, _>("dir/file", |w| {
    w.write_all(b"a\nx\nb\nd\n")?;
    Ok(())
    })?;
    [3.249472]
    [3.249573]
    use std::io::Write;
    repo.write_file("dir/file")?.write_all(b"a\nx\nb\nd\n")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 26
    [3.249574][3.249574:249649]()
    let h1 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.249574]
    [3.249649]
    let h1 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 28
    [3.249650][3.249650:249770]()
    let channel2 = txn.fork(&channel, "main2")?;
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h1)?;
    [3.249650]
    [3.249770]
    let channel2 = (&mut *txn.write().unwrap()).fork(&channel, "main2")?;
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 31
    [3.249828][3.249828:249847]()
    &mut repo,
    [3.249828]
    [3.249847]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 33
    [3.249865][3.249865:249905]()
    &mut txn,
    &mut channel,
    [3.249865]
    [3.249905]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 38
    [3.19338]
    [3.249931]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 47
    [3.250161][3.3366:3482](),[3.3482][3.250255:250274](),[3.10366][3.250255:250274](),[3.250255][3.250255:250274]()
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
    debug_to_file(&txn, &channel2.borrow(), "debug_un2")?;
    txn.commit()?;
    [3.250161]
    [3.250274]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un")?;
    debug_to_file(&*txn.read().unwrap(), &channel2, "debug_un2")?;
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 58
    [3.250384][3.250384:250440]()
    let mut repo = working_copy::memory::Memory::new();
    [3.250384]
    [3.250440]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 64
    [3.250611][2.30294:30342](),[2.30342][3.250650:250681](),[3.250650][3.250650:250681]()
    let mut txn = env.mut_txn_begin().unwrap();
    txn.add_file("dir/file")?;
    [3.250611]
    [3.250681]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    txn.write().unwrap().add_file("dir/file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 67
    [3.250682][3.250682:250817]()
    let mut channel = txn.open_or_create_channel("main")?;
    let _h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.250682]
    [3.250817]
    let channel = txn.write().unwrap().open_or_create_channel("main")?;
    let _h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 70
    [3.250818][3.63:125](),[3.125][3.250856:250919](),[3.250856][3.250856:250919]()
    repo.write_file::<_, std::io::Error, _>("dir/file", |w| {
    w.write_all(b"a\nx\ny\nd\n")?;
    Ok(())
    })?;
    [3.250818]
    [3.250919]
    repo.write_file("dir/file")?.write_all(b"a\nx\ny\nd\n")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 72
    [3.250920][3.250920:250995]()
    let h1 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.250920]
    [3.250995]
    let h1 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 74
    [3.250996][3.250996:251045](),[3.251045][3.19339:19397](),[3.19397][3.251045:251116](),[3.251045][3.251045:251116](),[3.251116][3.19398:19456]()
    let channel2 = txn.fork(&channel, "main2")?;
    debug_to_file(&txn, &channel.borrow(), "debug_un0")?;
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h1)?;
    debug_to_file(&txn, &channel.borrow(), "debug_un1")?;
    [3.250996]
    [3.251116]
    let channel2 = txn.write().unwrap().fork(&channel, "main2")?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un0")?;
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un1")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 79
    [3.251174][3.251174:251193]()
    &mut repo,
    [3.251174]
    [3.251193]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 81
    [3.251211][3.251211:251251]()
    &mut txn,
    &mut channel,
    [3.251211]
    [3.251251]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 86
    [3.19471]
    [3.251277]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 95
    [3.251507][3.3483:3599](),[3.3599][3.251601:251620](),[3.10465][3.251601:251620](),[3.251601][3.251601:251620]()
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
    debug_to_file(&txn, &channel2.borrow(), "debug_un2")?;
    txn.commit()?;
    [3.251507]
    [3.251620]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un")?;
    debug_to_file(&*txn.read().unwrap(), &channel2, "debug_un2")?;
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 106
    [3.251732][3.251732:251788]()
    let mut repo = working_copy::memory::Memory::new();
    [3.251732]
    [3.251788]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 112
    [3.251955][2.30343:30391](),[2.30391][3.251994:252021](),[3.251994][3.251994:252021]()
    let mut txn = env.mut_txn_begin().unwrap();
    txn.add_file("file")?;
    [3.251955]
    [3.252021]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    txn.write().unwrap().add_file("file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 115
    [3.252022][3.252022:252157]()
    let mut channel = txn.open_or_create_channel("main")?;
    let _h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.252022]
    [3.252157]
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    let _h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 119
    [3.252196][3.252196:252236]()
    txn.move_file("file", "dir/file")?;
    [3.252196]
    [3.252236]
    txn.write().unwrap().move_file("file", "dir/file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 121
    [3.252270][3.252270:252345]()
    let h1 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.252270]
    [3.252345]
    let h1 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 123
    [3.252346][3.3600:3657]()
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
    [3.252346]
    [3.252392]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 125
    [3.252428][3.252428:252499]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h1)?;
    [3.252428]
    [3.252499]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 127
    [3.252500][3.3658:3716]()
    debug_to_file(&txn, &channel.borrow(), "debug_un2")?;
    [3.252500]
    [3.252547]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 129
    [3.252563][3.252563:252619]()
    crate::fs::iter_working_copy(&txn, Inode::ROOT)
    [3.252563]
    [3.27386]
    crate::fs::iter_working_copy(&*txn.read().unwrap(), Inode::ROOT)
  • replacement in libpijul/src/tests/unrecord.rs at line 137
    [3.2449][3.2449:2468]()
    &mut repo,
    [3.2449]
    [3.2468]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 139
    [3.2486][3.2486:2526]()
    &mut txn,
    &mut channel,
    [3.2486]
    [3.2526]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 144
    [3.2566]
    [3.2566]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 147
    [3.252902][3.252902:252958]()
    crate::fs::iter_working_copy(&txn, Inode::ROOT)
    [3.252902]
    [3.27422]
    crate::fs::iter_working_copy(&*txn.read().unwrap(), Inode::ROOT)
  • replacement in libpijul/src/tests/unrecord.rs at line 159
    [3.253105][3.253105:253124]()
    txn.commit()?;
    [3.253105]
    [3.253124]
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 177
    [3.253415][3.253415:253585]()
    let mut repo = working_copy::memory::Memory::new();
    let mut repo2 = working_copy::memory::Memory::new();
    let mut repo3 = working_copy::memory::Memory::new();
    [3.253415]
    [3.253585]
    let repo = Arc::new(working_copy::memory::Memory::new());
    let repo2 = Arc::new(working_copy::memory::Memory::new());
    let repo3 = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 187
    [3.253870][2.30392:30540](),[2.30540][3.253991:254018](),[3.253991][3.253991:254018]()
    let mut txn = env.mut_txn_begin().unwrap();
    let mut txn2 = env2.mut_txn_begin().unwrap();
    let mut txn3 = env3.mut_txn_begin().unwrap();
    txn.add_file("file")?;
    [3.253870]
    [3.254018]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    let txn2 = Arc::new(RwLock::new(env2.mut_txn_begin().unwrap()));
    let txn3 = Arc::new(RwLock::new(env3.mut_txn_begin().unwrap()));
    txn.write().unwrap().add_file("file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 192
    [3.254019][3.254019:254153]()
    let mut channel = txn.open_or_create_channel("main")?;
    let h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.254019]
    [3.254153]
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 195
    [3.254154][3.254154:254276]()
    let mut channel2 = txn2.open_or_create_channel("main")?;
    let mut channel3 = txn3.open_or_create_channel("main")?;
    [3.254154]
    [3.254276]
    let channel2 = (&mut *txn2.write().unwrap()).open_or_create_channel("main")?;
    let channel3 = (&mut *txn3.write().unwrap()).open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 198
    [3.254277][3.19774:19841]()
    apply::apply_change(&changes, &mut txn2, &mut channel2, &h0)?;
    [3.254277]
    [3.2575]
    apply::apply_change(
    &changes,
    &mut *txn2.write().unwrap(),
    &mut *channel2.write().unwrap(),
    &h0,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 205
    [3.2617][3.2617:2637]()
    &mut repo2,
    [3.2617]
    [3.2637]
    repo2.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 207
    [3.2655][3.2655:2697]()
    &mut txn2,
    &mut channel2,
    [3.2655]
    [3.2697]
    txn2.clone(),
    channel2.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 212
    [3.2737]
    [3.2737]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 214
    [3.2745][3.19948:20015](),[3.19948][3.19948:20015]()
    apply::apply_change(&changes, &mut txn3, &mut channel3, &h0)?;
    [3.2745]
    [3.2746]
    apply::apply_change(
    &changes,
    &mut *txn3.write().unwrap(),
    &mut *channel3.write().unwrap(),
    &h0,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 221
    [3.2788][3.2788:2808]()
    &mut repo3,
    [3.2788]
    [3.2808]
    repo3.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 223
    [3.2826][3.2826:2868]()
    &mut txn3,
    &mut channel3,
    [3.2826]
    [3.2868]
    txn3.clone(),
    channel3.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 228
    [3.2908]
    [3.2908]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 240
    [3.254929][3.126:188](),[3.188][3.254967:255036](),[3.254967][3.254967:255036]()
    repo.write_file::<_, std::io::Error, _>("file", |w| {
    w.write_all(b"a\nd\n")?;
    Ok(())
    })?;
    [3.254929]
    [3.255036]
    repo.write_file("file")?.write_all(b"a\nd\n")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 242
    [3.255042][3.255042:255115]()
    record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.255042]
    [3.255115]
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 251
    [3.255132][3.189:248](),[3.248][3.255167:255311](),[3.255167][3.255167:255311]()
    repo2.write_file::<_, std::io::Error, _>("file", |w| {
    w.write_all(b"a\nb\nx\nc\nd\n")?;
    Ok(())
    })?;
    let h2 = record_all(&mut repo2, &changes, &mut txn2, &mut channel2, "")?;
    [3.255132]
    [3.255311]
    repo2.write_file("file")?.write_all(b"a\nb\nx\nc\nd\n")?;
    let h2 = record_all(repo2.clone(), &changes, txn2.clone(), channel2.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 254
    [3.255312][3.249:308](),[3.308][3.255347:255494](),[3.255347][3.255347:255494]()
    repo2.write_file::<_, std::io::Error, _>("file", |w| {
    w.write_all(b"a\nb\nx\nc\ny\nd\n")?;
    Ok(())
    })?;
    let h3 = record_all(&mut repo2, &changes, &mut txn2, &mut channel2, "")?;
    [3.255312]
    [3.255494]
    repo2.write_file("file")?.write_all(b"a\nb\nx\nc\ny\nd\n")?;
    let h3 = record_all(repo2.clone(), &changes, txn2.clone(), channel2.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 258
    [3.255511][3.20123:20253]()
    apply::apply_change(&changes, &mut txn, &mut channel, &h2)?;
    apply::apply_change(&changes, &mut txn, &mut channel, &h3)?;
    [3.255511]
    [3.2917]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel.write().unwrap(),
    &h2,
    )?;
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel.write().unwrap(),
    &h3,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 271
    [3.2959][3.2959:2978]()
    &mut repo,
    [3.2959]
    [3.2978]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 273
    [3.2996][3.2996:3036]()
    &mut txn,
    &mut channel,
    [3.2996]
    [3.3036]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 278
    [3.3076]
    [3.3076]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 281
    [3.255738][3.3717:3774]()
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
    [3.255738]
    [3.255784]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 283
    [3.255785][3.255785:255856]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h2)?;
    [3.255785]
    [3.255856]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h2)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 285
    [3.255857][3.3775:3833]()
    debug_to_file(&txn, &channel.borrow(), "debug_un2")?;
    [3.255857]
    [3.255904]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 302
    [3.256197][3.256197:256310]()
    let mut repo = working_copy::memory::Memory::new();
    let mut repo2 = working_copy::memory::Memory::new();
    [3.256197]
    [3.256310]
    let repo = Arc::new(working_copy::memory::Memory::new());
    let repo2 = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 310
    [3.256536][2.30541:30639](),[2.30639][3.256616:256643](),[3.256616][3.256616:256643]()
    let mut txn = env.mut_txn_begin().unwrap();
    let mut txn2 = env2.mut_txn_begin().unwrap();
    txn.add_file("file")?;
    [3.256536]
    [3.256643]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    let txn2 = Arc::new(RwLock::new(env2.mut_txn_begin().unwrap()));
    txn.write().unwrap().add_file("file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 314
    [3.256644][3.256644:256839]()
    let mut channel = txn.open_or_create_channel("main")?;
    let h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    let mut channel2 = txn2.open_or_create_channel("main")?;
    [3.256644]
    [3.256839]
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
    let channel2 = (&mut *txn2.write().unwrap()).open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 318
    [3.256840][3.20358:20425]()
    apply::apply_change(&changes, &mut txn2, &mut channel2, &h0)?;
    [3.256840]
    [3.3085]
    apply::apply_change(
    &changes,
    &mut *txn2.write().unwrap(),
    &mut *channel2.write().unwrap(),
    &h0,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 325
    [3.3127][3.3127:3147]()
    &mut repo2,
    [3.3127]
    [3.3147]
    repo2.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 327
    [3.3165][3.3165:3207]()
    &mut txn2,
    &mut channel2,
    [3.3165]
    [3.3207]
    txn2.clone(),
    channel2.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 332
    [3.3247]
    [3.3247]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 337
    [3.257055][3.309:371](),[3.371][3.257093:257157](),[3.257093][3.257093:257157]()
    repo.write_file::<_, std::io::Error, _>("file", |w| {
    w.write_all(file)?;
    Ok(())
    })?;
    [3.257055]
    [3.257157]
    repo.write_file("file")?.write_all(file)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 341
    [3.257211][3.257211:257293](),[3.257293][3.3834:3890]()
    let h1 = record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    debug_to_file(&txn, &channel.borrow(), "debug_a")?;
    [3.257211]
    [3.257338]
    let h1 = record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_a")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 352
    [3.257356][3.372:431](),[3.431][3.257391:257542](),[3.257391][3.257391:257542](),[3.257542][3.3891:3949]()
    repo2.write_file::<_, std::io::Error, _>("file", |w| {
    w.write_all(b"a\nb\nx\nc\nd\n")?;
    Ok(())
    })?;
    let h2 = record_all_output(&mut repo2, &changes, &mut txn2, &mut channel2, "")?;
    debug_to_file(&txn2, &channel2.borrow(), "debug_b")?;
    [3.257356]
    [3.257589]
    repo2.write_file("file")?.write_all(b"a\nb\nx\nc\nd\n")?;
    let h2 = record_all_output(
    repo2.clone(),
    changes.clone(),
    txn2.clone(),
    channel2.clone(),
    "",
    )?;
    debug_to_file(&*txn2.read().unwrap(), &channel2, "debug_b")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 363
    [3.257606][3.20533:20598]()
    apply::apply_change(&changes, &mut txn, &mut channel, &h2)?;
    [3.257606]
    [3.257670]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel.write().unwrap(),
    &h2,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 370
    [3.257671][3.3950:4007]()
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
    [3.257671]
    [3.257717]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 372
    [3.257744][3.257744:257815]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h2)?;
    [3.257744]
    [3.257815]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h2)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 374
    [3.257873][3.257873:257892]()
    &mut repo,
    [3.257873]
    [3.257892]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 376
    [3.257910][3.257910:257950]()
    &mut txn,
    &mut channel,
    [3.257910]
    [3.257950]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 381
    [3.20613]
    [3.257976]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 383
    [3.257984][3.4008:4066]()
    debug_to_file(&txn, &channel.borrow(), "debug_un2")?;
    [3.257984]
    [3.258031]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 401
    [3.258535][3.27458:27533]()
    let (alive_, reachable_) = check_alive(&txn, &channel.borrow().graph);
    [3.258535]
    [3.258593]
    let (alive_, reachable_) = check_alive(&*txn.read().unwrap(), &channel.read().unwrap().graph);
  • replacement in libpijul/src/tests/unrecord.rs at line 409
    [3.258752][3.258752:258771]()
    txn.commit()?;
    [3.258752]
    [3.258771]
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 412
    [3.258803][3.20614:20681](),[3.20681][3.4067:4127](),[3.258869][3.4067:4127]()
    apply::apply_change(&changes, &mut txn2, &mut channel2, &h1)?;
    debug_to_file(&txn2, &channel2.borrow(), "debug_un3")?;
    [3.258803]
    [3.258918]
    apply::apply_change(
    &changes,
    &mut *txn2.write().unwrap(),
    &mut *channel2.write().unwrap(),
    &h1,
    )?;
    debug_to_file(&*txn2.read().unwrap(), &channel2, "debug_un3")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 421
    [3.258960][3.258960:259033](),[3.259033][3.4128:4188]()
    crate::unrecord::unrecord(&mut txn2, &mut channel2, &changes, &h1)?;
    debug_to_file(&txn2, &channel2.borrow(), "debug_un4")?;
    [3.258960]
    [3.259082]
    crate::unrecord::unrecord(&mut *txn2.write().unwrap(), &channel2, &changes, &h1)?;
    debug_to_file(&*txn2.read().unwrap(), &channel2, "debug_un4")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 424
    [3.259140][3.259140:259159]()
    &mut repo,
    [3.259140]
    [3.259159]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 426
    [3.259177][3.259177:259218]()
    &mut txn2,
    &mut channel,
    [3.259177]
    [3.259218]
    txn2.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 431
    [3.20696]
    [3.259244]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 445
    [3.259535][3.259535:259591]()
    let mut repo = working_copy::memory::Memory::new();
    [3.259535]
    [3.259591]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 450
    [3.259760][2.30640:30688](),[2.30688][3.259799:259829](),[3.259799][3.259799:259829]()
    let mut txn = env.mut_txn_begin().unwrap();
    txn.add_file("a/b/c/d")?;
    [3.259760]
    [3.259829]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    txn.write().unwrap().add_file("a/b/c/d")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 453
    [3.259830][3.259830:259955]()
    let mut channel = txn.open_or_create_channel("main")?;
    record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.259830]
    [3.259955]
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 457
    [3.259990][3.259990:260072]()
    let h1 = record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.259990]
    [3.260072]
    let h1 = record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 466
    [3.260103][3.260103:260186]()
    let _h2 = record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.260103]
    [3.3256]
    let _h2 = record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 474
    [3.3298][3.3298:3317]()
    &mut repo,
    [3.3298]
    [3.3317]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 476
    [3.3335][3.3335:3375]()
    &mut txn,
    &mut channel,
    [3.3335]
    [3.3375]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 481
    [3.3415]
    [3.3415]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 487
    [3.260384][3.4189:4246](),[3.4246][3.260430:260501](),[3.11074][3.260430:260501](),[3.260430][3.260430:260501]()
    debug_to_file(&txn, &channel.borrow(), "debug_un")?;
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h1)?;
    [3.260384]
    [3.260501]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un")?;
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 490
    [3.260502][3.4247:4305]()
    debug_to_file(&txn, &channel.borrow(), "debug_un2")?;
    [3.260502]
    [3.260549]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug_un2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 493
    [3.260608][3.260608:260627]()
    &mut repo,
    [3.260608]
    [3.260627]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 495
    [3.260645][3.260645:260685]()
    &mut txn,
    &mut channel,
    [3.260645]
    [3.260685]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 500
    [3.20816]
    [3.260711]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 516
    [3.261132][3.27534:27609]()
    let (alive_, reachable_) = check_alive(&txn, &channel.borrow().graph);
    [3.261132]
    [3.261190]
    let (alive_, reachable_) = check_alive(&*txn.read().unwrap(), &channel.read().unwrap().graph);
  • replacement in libpijul/src/tests/unrecord.rs at line 524
    [3.261349][3.261349:261368]()
    txn.commit()?;
    [3.261349]
    [3.261368]
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 533
    [3.261476][3.261476:261532]()
    let mut repo = working_copy::memory::Memory::new();
    [3.261476]
    [3.261532]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 539
    [3.261703][2.30689:30737](),[2.30737][3.261742:261773](),[3.261742][3.261742:261773](),[3.261773][3.11186:11210]()
    let mut txn = env.mut_txn_begin().unwrap();
    txn.add_file("dir/file")?;
    debug_inodes(&txn);
    [3.261703]
    [3.261797]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    txn.write().unwrap().add_file("dir/file")?;
    debug_inodes(&*txn.read().unwrap());
  • replacement in libpijul/src/tests/unrecord.rs at line 543
    [3.261798][3.261798:261932]()
    let mut channel = txn.open_or_create_channel("main")?;
    let h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.261798]
    [3.261932]
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 546
    [3.261933][3.432:494](),[3.494][3.261971:262034](),[3.261971][3.261971:262034]()
    repo.write_file::<_, std::io::Error, _>("dir/file", |w| {
    w.write_all(b"a\nx\nb\nd\n")?;
    Ok(())
    })?;
    [3.261933]
    [3.262034]
    repo.write_file("dir/file")?.write_all(b"a\nx\nb\nd\n")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 548
    [3.262035][3.262035:262110](),[3.262110][3.11211:11235]()
    let h1 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    debug_inodes(&txn);
    [3.262035]
    [3.262134]
    let h1 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
    debug_inodes(&*txn.read().unwrap());
  • replacement in libpijul/src/tests/unrecord.rs at line 551
    [3.262135][3.262135:262212]()
    match crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h0) {
    [3.262135]
    [3.495]
    match crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h0) {
  • replacement in libpijul/src/tests/unrecord.rs at line 556
    [3.262468][3.11236:11260](),[3.11260][3.262492:262631](),[3.262492][3.262492:262631]()
    debug_inodes(&txn);
    let mut channel2 = txn.open_or_create_channel("main2")?;
    match crate::unrecord::unrecord(&mut txn, &mut channel2, &changes, &h0) {
    [3.262468]
    [3.575]
    debug_inodes(&*txn.read().unwrap());
    let channel2 = (&mut *txn.write().unwrap()).open_or_create_channel("main2")?;
    match crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel2, &changes, &h0) {
  • replacement in libpijul/src/tests/unrecord.rs at line 563
    [3.262885][3.27610:27664]()
    for p in txn.log(&channel.borrow(), 0).unwrap() {
    [3.262885]
    [3.262930]
    for p in txn
    .read()
    .unwrap()
    .log(&*channel.read().unwrap(), 0)
    .unwrap()
    {
  • replacement in libpijul/src/tests/unrecord.rs at line 572
    [3.262968][3.11261:11285](),[3.11285][3.4306:4360](),[3.4360][3.263035:263106](),[3.11330][3.263035:263106](),[3.263035][3.263035:263106]()
    debug_inodes(&txn);
    debug_to_file(&txn, &channel.borrow(), "debug")?;
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h1)?;
    [3.262968]
    [3.263106]
    debug_inodes(&*txn.read().unwrap());
    debug_to_file(&*txn.read().unwrap(), &channel, "debug")?;
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 576
    [3.263107][3.27665:27719]()
    for p in txn.log(&channel.borrow(), 0).unwrap() {
    [3.263107]
    [3.263152]
    for p in txn
    .read()
    .unwrap()
    .log(&*channel.read().unwrap(), 0)
    .unwrap()
    {
  • replacement in libpijul/src/tests/unrecord.rs at line 585
    [3.263190][3.11331:11355](),[3.11355][3.4361:4416](),[3.4416][3.263258:263329](),[3.11401][3.263258:263329](),[3.263258][3.263258:263329](),[3.263329][3.4417:4472]()
    debug_inodes(&txn);
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h0)?;
    debug_to_file(&txn, &channel.borrow(), "debug3")?;
    [3.263190]
    [3.263373]
    debug_inodes(&*txn.read().unwrap());
    debug_to_file(&*txn.read().unwrap(), &channel, "debug2")?;
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h0)?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug3")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 591
    [3.3466][3.3466:3485]()
    &mut repo,
    [3.3466]
    [3.3485]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 593
    [3.3503][3.3503:3543]()
    &mut txn,
    &mut channel,
    [3.3503]
    [3.3543]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 598
    [3.3583]
    [3.3583]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 606
    [3.21138][3.263593:263709](),[3.263593][3.263593:263709]()
    assert!(crate::fs::iter_working_copy(&txn, Inode::ROOT)
    .next()
    .is_none());
    txn.commit()?;
    [3.21138]
    [3.263709]
    assert!(
    crate::fs::iter_working_copy(&*txn.read().unwrap(), Inode::ROOT)
    .next()
    .is_none()
    );
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 620
    [3.263820][3.263820:263876]()
    let mut repo = working_copy::memory::Memory::new();
    [3.263820]
    [3.263876]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 625
    [3.263990][2.30738:30786]()
    let mut txn = env.mut_txn_begin().unwrap();
    [3.263990]
    [3.264029]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
  • replacement in libpijul/src/tests/unrecord.rs at line 627
    [3.264030][3.264030:264089]()
    let mut channel = txn.open_or_create_channel("main")?;
    [3.264030]
    [3.264089]
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 630
    [3.264137][3.264137:264239]()
    txn.add_file("file")?;
    let h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.264137]
    [3.264239]
    txn.write().unwrap().add_file("file")?;
    let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 634
    [3.264271][3.264271:264345]()
    let h = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.264271]
    [3.264345]
    let h = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 636
    [3.264346][3.4473:4527]()
    debug_to_file(&txn, &channel.borrow(), "debug")?;
    [3.264346]
    [3.264389]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 639
    [3.264448][3.264448:264518](),[3.264518][3.4528:4583]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h)?;
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
    [3.264448]
    [3.264562]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h)?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 642
    [3.264620][3.264620:264639]()
    &mut repo,
    [3.264620]
    [3.264639]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 644
    [3.264657][3.264657:264697]()
    &mut txn,
    &mut channel,
    [3.264657]
    [3.264697]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 649
    [3.21153]
    [3.264723]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 658
    [3.264932][3.264932:265003](),[3.265003][3.4584:4639]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h0)?;
    debug_to_file(&txn, &channel.borrow(), "debug3")?;
    [3.264932]
    [3.265047]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h0)?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug3")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 661
    [3.265105][3.265105:265124]()
    &mut repo,
    [3.265105]
    [3.265124]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 663
    [3.265142][3.265142:265182]()
    &mut txn,
    &mut channel,
    [3.265142]
    [3.265182]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 668
    [3.21168]
    [3.265208]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 676
    [3.21265][3.265423:265442](),[3.265423][3.265423:265442]()
    txn.commit()?;
    [3.21265]
    [3.265443]
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 685
    [3.265628][3.265628:265684]()
    let mut repo = working_copy::memory::Memory::new();
    [3.265628]
    [3.265684]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 690
    [3.265798][2.30787:30835]()
    let mut txn = env.mut_txn_begin().unwrap();
    [3.265798]
    [3.265837]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
  • replacement in libpijul/src/tests/unrecord.rs at line 692
    [3.265838][3.265838:265897]()
    let mut channel = txn.open_or_create_channel("main")?;
    [3.265838]
    [3.265897]
    let mut channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 695
    [3.265945][3.265945:266038]()
    txn.add_file("file")?;
    record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.265945]
    [3.266038]
    txn.write().unwrap().add_file("file")?;
    record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 698
    [3.266039][3.266039:266092]()
    let mut channel2 = txn.fork(&channel, "main2")?;
    [3.266039]
    [3.266092]
    let channel2 = (&mut *txn.write().unwrap()).fork(&channel, "main2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 700
    [3.266093][3.653:743](),[3.743][3.266159:266225](),[3.266159][3.266159:266225](),[3.266225][3.744:834](),[3.834][3.266291:266366](),[3.266291][3.266291:266366]()
    repo.write_file::<_, std::io::Error, _>("file", |w| Ok(w.write_all(b"a\nx\nb\n")?))?;
    record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    repo.write_file::<_, std::io::Error, _>("file", |w| Ok(w.write_all(b"a\ny\nb\n")?))?;
    let b = record_all(&mut repo, &changes, &mut txn, &mut channel2, "")?;
    [3.266093]
    [3.266366]
    repo.write_file("file")?.write_all(b"a\nx\nb\n")?;
    record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
    repo.write_file("file")?.write_all(b"a\ny\nb\n")?;
    let b = record_all(repo.clone(), &changes, txn.clone(), channel2.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 705
    [3.266367][3.21266:21330](),[3.21330][3.4640:4694](),[3.266430][3.4640:4694]()
    apply::apply_change(&changes, &mut txn, &mut channel, &b)?;
    debug_to_file(&txn, &channel.borrow(), "debug")?;
    [3.266367]
    [3.266473]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel.write().unwrap(),
    &b,
    )?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 713
    [3.266531][3.266531:266550]()
    &mut repo,
    [3.266531]
    [3.266550]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 715
    [3.266568][3.266568:266608]()
    &mut txn,
    &mut channel,
    [3.266568]
    [3.266608]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 720
    [3.21345]
    [3.266634]
    1,
  • edit in libpijul/src/tests/unrecord.rs at line 723
    [3.266686]
    [3.266686]
    let mut buf = Vec::new();
    repo.read_file("file", &mut buf)?;
    debug!("buf = {:?}", std::str::from_utf8(&buf));
  • replacement in libpijul/src/tests/unrecord.rs at line 735
    [3.266973][3.835:893]()
    repo.write_file::<_, std::io::Error, _>("file", |w| {
    [3.266973]
    [3.267007]
    {
    let mut w = repo.write_file("file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 744
    [3.267211][3.267211:267309](),[3.267309][3.4695:4750]()
    Ok(())
    })?;
    let c = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
    [3.267211]
    [3.267353]
    }
    let c = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 748
    [3.267354][3.267354:267424](),[3.267424][3.4751:4806]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &c)?;
    debug_to_file(&txn, &channel.borrow(), "debug3")?;
    [3.267354]
    [3.267468]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &mut channel, &changes, &c)?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug3")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 752
    [3.267527][3.267527:267546]()
    &mut repo,
    [3.267527]
    [3.267546]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 754
    [3.267564][3.267564:267604]()
    &mut txn,
    &mut channel,
    [3.267564]
    [3.267604]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 759
    [3.21360]
    [3.267630]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 784
    [3.268270][3.268270:268289]()
    txn.commit()?;
    [3.268270]
    [3.268289]
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 802
    [3.268574][3.268574:268630]()
    let mut repo = working_copy::memory::Memory::new();
    [3.268574]
    [3.268630]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 807
    [3.268744][2.30836:30884]()
    let mut txn = env.mut_txn_begin().unwrap();
    [3.268744]
    [3.268783]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
  • replacement in libpijul/src/tests/unrecord.rs at line 809
    [3.268784][3.268784:268843]()
    let mut channel = txn.open_or_create_channel("main")?;
    [3.268784]
    [3.268843]
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 813
    [3.268913][3.268913:269006]()
    txn.add_file("file")?;
    record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.268913]
    [3.269006]
    txn.write().unwrap().add_file("file")?;
    record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 820
    [3.269093][3.894:956](),[3.956][3.269131:269200](),[3.269131][3.269131:269200]()
    repo.write_file::<_, std::io::Error, _>("file", |w| {
    w.write_all(b"a\nd\n")?;
    Ok(())
    })?;
    [3.269093]
    [3.269200]
    repo.write_file("file")?.write_all(b"a\nd\n")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 822
    [3.269206][3.269206:269284]()
    let h_del = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.269206]
    [3.269284]
    let h_del = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 838
    [3.269719][3.21361:21429]()
    apply::apply_change(&changes, &mut txn, &mut channel, &h_inv)?;
    [3.269719]
    [3.269786]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel.write().unwrap(),
    &h_inv,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 845
    [3.269844][3.269844:269863]()
    &mut repo,
    [3.269844]
    [3.269863]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 847
    [3.269881][3.269881:269921]()
    &mut txn,
    &mut channel,
    [3.269881]
    [3.269921]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 852
    [3.21444]
    [3.269947]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 854
    [3.269955][3.4807:4861]()
    debug_to_file(&txn, &channel.borrow(), "debug")?;
    [3.269955]
    [3.269998]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 863
    [3.270241][3.270241:270315]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h_inv)?;
    [3.270241]
    [3.270315]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h_inv)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 865
    [3.270373][3.270373:270392]()
    &mut repo,
    [3.270373]
    [3.270392]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 867
    [3.270410][3.270410:270450]()
    &mut txn,
    &mut channel,
    [3.270410]
    [3.270450]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 872
    [3.21459]
    [3.270476]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 874
    [3.270484][3.4862:4917]()
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
    [3.270484]
    [3.270528]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 886
    [3.270818][3.270818:270837]()
    txn.commit()?;
    [3.270818]
    [3.270837]
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 897
    [3.271084][3.271084:271140]()
    let mut repo = working_copy::memory::Memory::new();
    [3.271084]
    [3.271140]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 901
    [3.271253][2.30885:30933](),[2.30933][3.271292:271412](),[3.271292][3.271292:271412]()
    let mut txn = env.mut_txn_begin().unwrap();
    let mut channel = txn.open_or_create_channel("main")?;
    let mut channel2 = txn.open_or_create_channel("main2")?;
    [3.271253]
    [3.271412]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    let channel2 = (&mut *txn.write().unwrap()).open_or_create_channel("main2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 906
    [3.271478][3.271478:271580]()
    txn.add_file("file")?;
    let h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.271478]
    [3.271580]
    txn.write().unwrap().add_file("file")?;
    let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 910
    [3.271610][3.21573:21639]()
    apply::apply_change(&changes, &mut txn, &mut channel2, &h0)?;
    [3.271610]
    [3.271675]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel2.write().unwrap(),
    &h0,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 918
    [3.271698][3.957:1015]()
    repo.write_file::<_, std::io::Error, _>("file", |w| {
    [3.271698]
    [3.218]
    {
    let mut w = repo.write_file("file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 921
    [3.180][3.271772:271871](),[3.258][3.271772:271871](),[3.271772][3.271772:271871]()
    Ok(())
    })?;
    let h1 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.258]
    [3.271871]
    }
    let h1 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 925
    [3.271901][3.4918:4973]()
    debug_to_file(&txn, &channel.borrow(), "debug0")?;
    [3.271901]
    [3.271945]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug0")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 928
    [3.272059][3.272059:272135]()
    let h2 = record_all(&mut repo, &changes, &mut txn, &mut channel2, "")?;
    [3.271969]
    [3.272135]
    let h2 = record_all(repo.clone(), &changes, txn.clone(), channel2.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 933
    [3.272221][3.21640:21705]()
    apply::apply_change(&changes, &mut txn, &mut channel, &h2)?;
    [3.272221]
    [3.272285]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel.write().unwrap(),
    &h2,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 940
    [3.272286][3.4974:5087]()
    debug_to_file(&txn, &channel.borrow(), "debug1a")?;
    debug_to_file(&txn, &channel2.borrow(), "debug1b")?;
    [3.272286]
    [3.272377]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug1a")?;
    debug_to_file(&*txn.read().unwrap(), &channel2, "debug1b")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 943
    [3.272403][3.272403:272474](),[3.272474][3.5088:5143]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h2)?;
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
    [3.272403]
    [3.272518]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h2)?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 947
    [3.272577][3.272577:272596]()
    &mut repo,
    [3.272577]
    [3.272596]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 949
    [3.272614][3.272614:272654]()
    &mut txn,
    &mut channel,
    [3.272614]
    [3.272654]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 954
    [3.21720]
    [3.272680]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 960
    [3.272774][3.272774:272793]()
    txn.commit()?;
    [3.272774]
    [3.272793]
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 971
    [3.273052][3.273052:273108]()
    let mut repo = working_copy::memory::Memory::new();
    [3.273052]
    [3.273108]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 975
    [3.273221][2.30934:30982](),[2.30982][3.273260:273380](),[3.273260][3.273260:273380]()
    let mut txn = env.mut_txn_begin().unwrap();
    let mut channel = txn.open_or_create_channel("main")?;
    let mut channel2 = txn.open_or_create_channel("main2")?;
    [3.273221]
    [3.273380]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    let mut channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    let mut channel2 = (&mut *txn.write().unwrap()).open_or_create_channel("main2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 980
    [3.273446][3.273446:273548]()
    txn.add_file("file")?;
    let h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.273446]
    [3.273548]
    txn.write().unwrap().add_file("file")?;
    let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 984
    [3.273578][3.21721:21787]()
    apply::apply_change(&changes, &mut txn, &mut channel2, &h0)?;
    [3.273578]
    [3.273643]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel2.write().unwrap(),
    &h0,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 992
    [3.273666][3.1075:1133]()
    repo.write_file::<_, std::io::Error, _>("file", |w| {
    [3.273666]
    [3.273700]
    {
    let mut w = repo.write_file("file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 995
    [3.273740][3.273740:273839]()
    Ok(())
    })?;
    let h1 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.273740]
    [3.273839]
    }
    let h1 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 999
    [3.273869][3.5144:5199]()
    debug_to_file(&txn, &channel.borrow(), "debug0")?;
    [3.273869]
    [3.273913]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug0")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1002
    [3.273937][3.1134:1192]()
    repo.write_file::<_, std::io::Error, _>("file", |w| {
    [3.273937]
    [3.214]
    {
    let mut w = repo.write_file("file")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1005
    [3.246][3.274003:274103](),[3.274003][3.274003:274103]()
    Ok(())
    })?;
    let h2 = record_all(&mut repo, &changes, &mut txn, &mut channel2, "")?;
    [3.246]
    [3.274103]
    }
    let h2 = record_all(repo.clone(), &changes, txn.clone(), channel2.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1011
    [3.274217][3.21788:21853]()
    apply::apply_change(&changes, &mut txn, &mut channel, &h2)?;
    [3.274217]
    [3.274281]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel.write().unwrap(),
    &h2,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1018
    [3.274282][3.5200:5313]()
    debug_to_file(&txn, &channel.borrow(), "debug1a")?;
    debug_to_file(&txn, &channel2.borrow(), "debug1b")?;
    [3.274282]
    [3.274373]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug1a")?;
    debug_to_file(&*txn.read().unwrap(), &channel2, "debug1b")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1021
    [3.274399][3.274399:274470](),[3.274470][3.5314:5369]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h2)?;
    debug_to_file(&txn, &channel.borrow(), "debug2")?;
    [3.274399]
    [3.274514]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &mut channel, &changes, &h2)?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1025
    [3.274573][3.274573:274592]()
    &mut repo,
    [3.274573]
    [3.274592]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 1027
    [3.274610][3.274610:274650]()
    &mut txn,
    &mut channel,
    [3.274610]
    [3.274650]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 1032
    [3.21868]
    [3.274676]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 1040
    [3.274878][3.21869:21935]()
    apply::apply_change(&changes, &mut txn, &mut channel2, &h1)?;
    [3.274878]
    [3.274943]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel2.write().unwrap(),
    &h1,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1064
    [3.275468][3.21936:22013](),[3.22013][3.5370:5444](),[3.275544][3.5370:5444]()
    apply::apply_change(&changes, &mut txn, &mut channel2, &r).unwrap();
    debug_to_file(&txn, &channel2.borrow(), format!("debug_{}", i))?;
    [3.275468]
    [3.275607]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel2.write().unwrap(),
    &r,
    )
    .unwrap();
    debug_to_file(&*txn.read().unwrap(), &channel2, format!("debug_{}", i))?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1074
    [3.275627][3.275627:275699](),[3.275699][3.5445:5506]()
    crate::unrecord::unrecord(&mut txn, &mut channel2, &changes, &h1)?;
    debug_to_file(&txn, &channel2.borrow(), "debug_final")?;
    [3.275627]
    [3.275749]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &mut channel2, &changes, &h1)?;
    debug_to_file(&*txn.read().unwrap(), &channel2, "debug_final")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1078
    [3.275808][3.275808:275827]()
    &mut repo,
    [3.275808]
    [3.275827]
    repo.clone(),
  • replacement in libpijul/src/tests/unrecord.rs at line 1080
    [3.275845][3.275845:275885]()
    &mut txn,
    &mut channel,
    [3.275845]
    [3.275885]
    txn.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/unrecord.rs at line 1085
    [3.22028]
    [3.275911]
    1,
  • replacement in libpijul/src/tests/unrecord.rs at line 1091
    [3.276004][3.276004:276023]()
    txn.commit()?;
    [3.276004]
    [3.367]
    commit(txn)?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1101
    [3.612][3.612:668]()
    let mut repo = working_copy::memory::Memory::new();
    [3.612]
    [3.668]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/unrecord.rs at line 1105
    [3.781][2.30983:31031](),[2.31031][3.820:940](),[3.820][3.820:940]()
    let mut txn = env.mut_txn_begin().unwrap();
    let mut channel = txn.open_or_create_channel("main")?;
    let mut channel2 = txn.open_or_create_channel("main2")?;
    [3.781]
    [3.940]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    let channel2 = (&mut *txn.write().unwrap()).open_or_create_channel("main2")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1110
    [3.1006][3.1006:1108]()
    txn.add_file("file")?;
    let h0 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.1006]
    [3.1108]
    txn.write().unwrap().add_file("file")?;
    let h0 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1114
    [3.1138][3.22029:22095]()
    apply::apply_change(&changes, &mut txn, &mut channel2, &h0)?;
    [3.1138]
    [3.276023]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel2.write().unwrap(),
    &h0,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1123
    [3.1257][3.1257:1332]()
    let h1 = record_all(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.1257]
    [3.1332]
    let h1 = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1126
    [3.1384][3.1384:1460]()
    let h2 = record_all(&mut repo, &changes, &mut txn, &mut channel2, "")?;
    [3.1384]
    [3.1460]
    let h2 = record_all(repo.clone(), &changes, txn.clone(), channel2.clone(), "")?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1131
    [3.1546][3.22096:22161]()
    apply::apply_change(&changes, &mut txn, &mut channel, &h2)?;
    [3.1546]
    [3.1610]
    apply::apply_change(
    &changes,
    &mut *txn.write().unwrap(),
    &mut *channel.write().unwrap(),
    &h2,
    )?;
  • replacement in libpijul/src/tests/unrecord.rs at line 1138
    [3.1611][3.1611:1753]()
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h1)?;
    crate::unrecord::unrecord(&mut txn, &mut channel, &changes, &h2)?;
    [3.1611]
    [3.1753]
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h1)?;
    crate::unrecord::unrecord(&mut *txn.write().unwrap(), &channel, &changes, &h2)?;
  • edit in libpijul/src/tests/unrecord.rs at line 1141
    [3.1754]
    [3.27720]
    let txn = txn.read().unwrap();
  • file addition: text.rs (----------)
    [3.248792]
    use super::*;
    use crate::working_copy::WorkingCopy;
    #[test]
    fn add_non_utf8_file_test() -> Result<(), anyhow::Error> {
    env_logger::try_init().unwrap_or(());
    let mut buf = Vec::new();
    use std::io::Read;
    let mut fh = std::fs::File::open("src/tests/data/1252.1")?;
    fh.read_to_end(&mut buf)?;
    let mut repo = working_copy::memory::Memory::new();
    repo.add_file("file", buf);
    let env = pristine::sanakirja::Pristine::new_anon()?;
    let mut txn = env.mut_txn_begin();
    let mut channel = txn.open_or_create_channel("main")?;
    txn.add_file("file")?;
    let store = changestore::memory::Memory::new();
    let (h, change) = record_all_change(&mut repo, &store, &mut txn, &mut channel, "")?;
    let mut v = Vec::new();
    change
    .write(
    &store,
    Some(h),
    |l, _p| format!("{}:{}", l.path, l.line),
    true,
    &mut v,
    )
    .unwrap();
    let lines: Vec<&str> = std::str::from_utf8(&v)
    .unwrap()
    .lines()
    .filter(|l| l.starts_with("+"))
    .collect();
    assert_eq!(
    vec!["+ French / Français (Windows CP 1252)", "+ €‚ƒ„…†‡, Salut"],
    lines
    );
    Ok(())
    }
    /// Change a non-utf-8 text file.
    #[test]
    fn change_non_utf8_file_test() -> Result<(), anyhow::Error> {
    env_logger::try_init().unwrap_or(());
    let mut buf = Vec::new();
    use std::io::Read;
    let mut fh = std::fs::File::open("src/tests/data/8859-1.1")?;
    fh.read_to_end(&mut buf)?;
    let mut repo = working_copy::memory::Memory::new();
    repo.add_file("file", buf);
    let env = pristine::sanakirja::Pristine::new_anon()?;
    let mut txn = env.mut_txn_begin();
    let mut channel = txn.open_or_create_channel("main")?;
    txn.add_file("file")?;
    let store = changestore::memory::Memory::new();
    record_all(&mut repo, &store, &mut txn, &mut channel, "")?;
    let mut buf = Vec::new();
    {
    use std::io::Read;
    let mut fh = std::fs::File::open("src/tests/data/8859-1.2")?;
    fh.read_to_end(&mut buf)?;
    }
    repo.write_file::<_, std::io::Error, _>("file", |w| {
    w.write_all(&buf).unwrap();
    Ok(())
    })?;
    let (h1, change1) = record_all_change(&mut repo, &store, &mut txn, &mut channel, "")?;
    // only one line was changed
    let mut v = Vec::new();
    change1
    .write(
    &store,
    Some(h1),
    |l, _p| format!("{}:{}", l.path, l.line),
    true,
    &mut v,
    )
    .unwrap();
    let lines: Vec<&str> = std::str::from_utf8(&v)
    .unwrap()
    .lines()
    .filter(|l| l.starts_with(|c| c == '-' || c == '+'))
    .collect();
    assert_eq!(
    vec![
    "- French / Français (ISO Latin-1 / ISO 8859-1)",
    "+ Français / French (ISO Latin-1 / ISO 8859-1)"
    ],
    lines
    );
    Ok(())
    }
  • edit in libpijul/src/tests/mod.rs at line 11
    [3.289578]
    [3.289578]
    /*
  • edit in libpijul/src/tests/mod.rs at line 22
    [3.14]
    [3.289715]
    */
  • replacement in libpijul/src/tests/mod.rs at line 25
    [3.289730][3.1788:1847](),[3.1847][2.31578:31592]()
    fn record_all<T: MutTxnT, R: WorkingCopy, P: ChangeStore>(
    repo: &R,
    [3.289730]
    [3.289813]
    fn record_all<
    T: MutTxnT + Send + Sync + 'static,
    R: WorkingCopy + Send + Sync + 'static,
    P: ChangeStore + Clone + Send + Sync + 'static,
    >(
    repo: Arc<R>,
  • replacement in libpijul/src/tests/mod.rs at line 32
    [3.289828][3.289828:289845](),[3.289845][2.31593:31622]()
    txn: &mut T,
    channel: &ChannelRef<T>,
    [3.289828]
    [3.289878]
    txn: Arc<RwLock<T>>,
    channel: ChannelRef<T>,
  • replacement in libpijul/src/tests/mod.rs at line 41
    [3.28242][3.28242:28255]()
    txn,
    [3.28242]
    [3.28255]
    txn.clone(),
  • replacement in libpijul/src/tests/mod.rs at line 43
    [3.28285][2.31623:31662]()
    &mut *channel.lock().unwrap(),
    [3.28285]
    [3.28320]
    channel.clone(),
  • edit in libpijul/src/tests/mod.rs at line 47
    [3.28365]
    [3.28365]
    1,
  • replacement in libpijul/src/tests/mod.rs at line 54
    [3.290134][3.28374:28422]()
    .map(|rec| rec.globalize(txn).unwrap())
    [3.290134]
    [3.290173]
    .map(|rec| rec.globalize(&*txn.read().unwrap()).unwrap())
  • replacement in libpijul/src/tests/mod.rs at line 57
    [3.290247][3.290247:290260](),[3.290260][3.290260:290278]()
    txn,
    &channel,
    [3.290247]
    [3.290278]
    &*txn.read().unwrap(),
    &channel.clone(),
  • replacement in libpijul/src/tests/mod.rs at line 60
    [3.290295][3.290295:290317]()
    rec.contents,
    [3.290295]
    [3.290317]
    std::mem::take(&mut *rec.contents.lock().unwrap()),
  • replacement in libpijul/src/tests/mod.rs at line 85
    [3.291067][3.25752:25832]()
    apply::apply_local_change(txn, channel, &change0, &hash, &rec.updatables)?;
    [3.291067]
    [3.291146]
    apply::apply_local_change(
    &mut *txn.write().unwrap(),
    &channel,
    &change0,
    &hash,
    &rec.updatables,
    )?;
  • replacement in libpijul/src/tests/mod.rs at line 101
    [2.31842][2.31842:31863]()
    changes: Arc<P>,
    [2.31842]
    [2.31863]
    changes: P,
  • replacement in libpijul/src/tests/mod.rs at line 103
    [2.31888][2.31888:31917]()
    channel: &ChannelRef<T>,
    [2.31888]
    [3.291344]
    channel: ChannelRef<T>,
  • replacement in libpijul/src/tests/mod.rs at line 110
    [3.1785][2.31958:31985](),[2.31985][2.31985:32070](),[2.32070][2.32070:32111](),[2.32111][2.32111:32208](),[2.32208][2.32208:32227]()
    let hash = record_all(
    repo.as_ref(),
    changes.as_ref(),
    &mut *txn.write().unwrap(),
    channel,
    prefix,
    )?;
    output::output_repository_no_pending(repo, changes, txn, channel.clone(), "", true, None, 1)
    .unwrap();
    [3.1785]
    [3.291552]
    let hash = record_all(repo.clone(), &changes, txn.clone(), channel.clone(), prefix)?;
    output::output_repository_no_pending(
    repo.clone(),
    &changes,
    txn,
    channel.clone(),
    "",
    true,
    None,
    1,
    )
    .unwrap();
  • file addition: data (d--r------)
    [3.248792]
  • file addition: gb.2 (----------)
    [0.2941]
  • file addition: gb.1 (----------)
    [0.2941]
  • file addition: 8859-1.2 (----------)
    [0.2941]
  • file addition: 8859-1.1 (----------)
    [0.2941]
  • file addition: 1252.2 (----------)
    [0.2941]
  • file addition: 1252.1 (----------)
    [0.2941]
  • file addition: 1252-dos.2 (----------)
    [0.2941]
  • file addition: 1252-dos.1 (----------)
    [0.2941]
  • edit in libpijul/src/tests/add_file.rs at line 2
    [3.454140]
    [3.454140]
    use std::io::Write;
  • replacement in libpijul/src/tests/add_file.rs at line 9
    [3.454275][3.454275:454331]()
    let mut repo = working_copy::memory::Memory::new();
    [3.454275]
    [3.454331]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 16
    [3.454514][2.35758:35810](),[2.35810][3.454557:454600](),[3.454557][3.454557:454600]()
    let mut txn = env.mut_txn_begin().unwrap();
    txn.add_file("dir/file").unwrap();
    [3.454514]
    [3.454600]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    txn.write().unwrap().add_file("dir/file").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 19
    [3.454601][3.454601:454750]()
    let mut channel = txn.open_or_create_channel("main").unwrap();
    record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
    [3.454601]
    [3.454750]
    let channel = txn.write().unwrap().open_or_create_channel("main").unwrap();
    record_all(repo, &changes, txn.clone(), channel.clone(), "").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 23
    [3.454793][3.454793:454845](),[3.454845][2.35811:35868](),[3.25544][3.454900:454931](),[3.31733][3.454900:454931](),[2.35868][3.454900:454931](),[3.454900][3.454900:454931]()
    assert!(txn.add_file("dir/file").is_err());
    debug_to_file(&txn, &channel, "debug").unwrap();
    txn.commit().unwrap();
    [3.454793]
    [3.454931]
    assert!(txn.write().unwrap().add_file("dir/file").is_err());
    debug_to_file(&*txn.read().unwrap(), &channel, "debug").unwrap();
    commit(txn).unwrap()
  • replacement in libpijul/src/tests/add_file.rs at line 35
    [3.30201][2.35869:35917]()
    let channel = channel_.lock().unwrap();
    [3.30201]
    [3.30202]
    let channel = channel_.read().unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 70
    [3.456421][3.456421:456477]()
    let mut repo = working_copy::memory::Memory::new();
    [3.456421]
    [3.456477]
    let repo = working_copy::memory::Memory::new();
  • replacement in libpijul/src/tests/add_file.rs at line 102
    [3.457332][2.36099:36165](),[2.36165][2.36165:36229]()
    let mut repo = Arc::new(working_copy::memory::Memory::new());
    let changes = Arc::new(changestore::memory::Memory::new());
    [3.457332]
    [3.457442]
    let repo = Arc::new(working_copy::memory::Memory::new());
    let changes = changestore::memory::Memory::new();
  • replacement in libpijul/src/tests/add_file.rs at line 107
    [3.457507][2.36230:36305]()
    let mut txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    [3.457507]
    [2.36305]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
  • replacement in libpijul/src/tests/add_file.rs at line 109
    [2.36365][2.36365:36453]()
    let mut channel = txn.write().unwrap().open_or_create_channel("main").unwrap();
    [2.36365]
    [3.457648]
    let channel = txn.write().unwrap().open_or_create_channel("main").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 116
    [2.36561][2.36561:36591]()
    &channel.clone(),
    [2.36561]
    [2.36591]
    channel.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 135
    [3.458320][2.36958:37028]()
    record_all_output(repo, changes, txn, &channel, "").unwrap();
    [3.458320]
    [2.37028]
    record_all_output(repo, changes, txn.clone(), channel.clone(), "").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 152
    [2.37539][2.37539:37587]()
    txn.write().unwrap().commit().unwrap();
    [2.37539]
    [3.458950]
    commit(txn).unwrap()
  • replacement in libpijul/src/tests/add_file.rs at line 170
    [3.3034][2.37588:37654](),[2.37654][2.37654:37718]()
    let mut repo = Arc::new(working_copy::memory::Memory::new());
    let changes = Arc::new(changestore::memory::Memory::new());
    [3.3034]
    [3.3144]
    let repo = Arc::new(working_copy::memory::Memory::new());
    let changes = changestore::memory::Memory::new();
  • replacement in libpijul/src/tests/add_file.rs at line 174
    [3.3203][2.37719:37790]()
    let mut txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    [3.3203]
    [2.37790]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
  • replacement in libpijul/src/tests/add_file.rs at line 176
    [2.37839][2.37839:37915]()
    let mut channel = txn.write().unwrap().open_or_create_channel("main")?;
    [2.37839]
    [3.3333]
    let channel = txn.write().unwrap().open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/add_file.rs at line 179
    [3.3398][2.37916:37998]()
    record_all_output(repo.clone(), changes.clone(), txn.clone(), &channel, "")?;
    [3.3398]
    [2.37998]
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 194
    [3.3793][2.38159:38241]()
    record_all_output(repo.clone(), changes.clone(), txn.clone(), &channel, "")?;
    [3.3793]
    [2.38241]
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 203
    [3.3920][2.38312:38379]()
    let mut repo2 = Arc::new(working_copy::memory::Memory::new());
    [3.3920]
    [3.5386]
    let repo2 = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 205
    [3.5428][2.38380:38395](),[2.38395][2.38395:38412]()
    repo2,
    changes,
    [3.5428]
    [2.38412]
    repo2.clone(),
    &changes,
  • edit in libpijul/src/tests/add_file.rs at line 214
    [3.5554]
    [3.4076]
    debug!("output done");
  • replacement in libpijul/src/tests/add_file.rs at line 230
    [3.459375][2.38561:38627](),[2.38627][2.38627:38691]()
    let mut repo = Arc::new(working_copy::memory::Memory::new());
    let changes = Arc::new(changestore::memory::Memory::new());
    [3.459375]
    [3.459485]
    let repo = Arc::new(working_copy::memory::Memory::new());
    let changes = changestore::memory::Memory::new();
  • replacement in libpijul/src/tests/add_file.rs at line 234
    [3.459544][2.38692:38763]()
    let mut txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    [3.459544]
    [2.38763]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
  • replacement in libpijul/src/tests/add_file.rs at line 236
    [2.38811][2.38811:38887]()
    let mut channel = txn.write().unwrap().open_or_create_channel("main")?;
    [2.38811]
    [3.459673]
    let channel = txn.write().unwrap().open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/add_file.rs at line 239
    [3.459737][2.38888:38978]()
    record_all_output(repo.clone(), changes.clone(), txn.clone(), &channel, "").unwrap();
    [3.459737]
    [2.38978]
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )
    .unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 253
    [2.39151][2.39151:39241]()
    record_all_output(repo.clone(), changes.clone(), txn.clone(), &channel, "").unwrap();
    [2.39151]
    [3.460049]
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )
    .unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 264
    [3.460193][3.25939:26001](),[3.26001][2.39242:39278]()
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
    txn.write().unwrap().commit()?;
    [3.460193]
    [3.460263]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug").unwrap();
    commit(txn).unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 274
    [3.460422][3.460422:460478]()
    let mut repo = working_copy::memory::Memory::new();
    [3.460422]
    [3.460478]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 278
    [3.460591][2.39279:39327]()
    let mut txn = env.mut_txn_begin().unwrap();
    [3.460591]
    [2.39327]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
  • replacement in libpijul/src/tests/add_file.rs at line 280
    [2.39375][2.39375:39451]()
    let mut channel = txn.write().unwrap().open_or_create_channel("main")?;
    [2.39375]
    [3.460720]
    let channel = txn.write().unwrap().open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/add_file.rs at line 283
    [3.460784][3.460784:460857]()
    record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.460784]
    [3.460857]
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 291
    [3.460858][3.7945:8007](),[3.8007][3.460896:461035](),[3.460896][3.460896:461035](),[3.461035][3.8008:8070](),[3.8070][3.461073:461136](),[3.461073][3.461073:461136](),[3.461136][3.26002:26065](),[3.26065][3.461188:461261](),[3.32111][3.461188:461261](),[3.461188][3.461188:461261](),[3.461261][3.26066:26129](),[3.26129][3.8071:8133](),[3.32166][3.8071:8133](),[3.8133][3.461351:461484](),[3.461351][3.461351:461484]()
    repo.write_file::<_, std::io::Error, _>("dir/file", |w| {
    w.write_all(b"a\nb\nc\ne\nf\n")?;
    Ok(())
    })?;
    record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    repo.write_file::<_, std::io::Error, _>("dir/file", |w| {
    w.write_all(b"a\nb\nc\nf\n")?;
    Ok(())
    })?;
    debug_to_file(&txn, &channel.borrow(), "debug0").unwrap();
    record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    debug_to_file(&txn, &channel.borrow(), "debug1").unwrap();
    repo.write_file::<_, std::io::Error, _>("dir/file", |w| {
    w.write_all(b"a\nb\nc\n")?;
    Ok(())
    })?;
    record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.460858]
    [3.461484]
    repo.write_file("dir/file")?.write_all(b"a\nb\nc\ne\nf\n")?;
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
    repo.write_file("dir/file")?.write_all(b"a\nb\nc\nf\n")?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug0").unwrap();
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug1").unwrap();
    repo.write_file("dir/file")?.write_all(b"a\nb\nc\n")?;
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 320
    [3.461628][3.26130:26193](),[3.26193][2.39452:39488]()
    debug_to_file(&txn, &channel.borrow(), "debug2").unwrap();
    txn.write().unwrap().commit()?;
    [3.461628]
    [3.461699]
    debug_to_file(&*txn.read().unwrap(), &channel, "debug2").unwrap();
    commit(txn).unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 330
    [3.461856][3.461856:461918]()
    let mut repo_alice = working_copy::memory::Memory::new();
    [3.461856]
    [3.461918]
    let repo_alice = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 336
    [3.462103][2.39489:39549](),[2.39549][3.462154:462187](),[3.462154][3.462154:462187]()
    let mut txn_alice = env_alice.mut_txn_begin().unwrap();
    txn_alice.add_file("file")?;
    [3.462103]
    [3.462187]
    let txn_alice = Arc::new(RwLock::new(env_alice.mut_txn_begin().unwrap()));
    txn_alice.write().unwrap().add_file("file")?;
  • replacement in libpijul/src/tests/add_file.rs at line 339
    [3.462188][3.462188:462344](),[3.462344][3.26194:26263]()
    let mut channel = txn_alice.open_or_create_channel("main")?;
    let alice0 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    debug_to_file(&txn_alice, &channel.borrow(), "debug0").unwrap();
    [3.462188]
    [3.462402]
    let channel = (&mut *txn_alice.write().unwrap()).open_or_create_channel("main")?;
    let alice0 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug0").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 350
    [3.462451][3.462451:462542](),[3.462542][3.26264:26333]()
    let alice1 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
    [3.462451]
    [3.462600]
    let alice1 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 359
    [3.462601][3.462601:462661]()
    let mut repo_bob = working_copy::memory::Memory::new();
    [3.462601]
    [3.462661]
    let repo_bob = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 361
    [3.462723][2.39550:39606](),[2.39606][3.462770:462833](),[3.462770][3.462770:462833](),[3.462833][3.44381:44454]()
    let mut txn_bob = env_bob.mut_txn_begin().unwrap();
    let mut channel = txn_bob.open_or_create_channel("main")?;
    apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice0)?;
    [3.462723]
    [3.462905]
    let txn_bob = Arc::new(RwLock::new(env_bob.mut_txn_begin().unwrap()));
    let channel = (&mut *txn_bob.write().unwrap()).open_or_create_channel("main")?;
    apply::apply_change(
    &changes,
    &mut *txn_bob.write().unwrap(),
    &mut *channel.write().unwrap(),
    &alice0,
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 370
    [3.462947][3.462947:462970]()
    &mut repo_bob,
    [3.462947]
    [3.462970]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 372
    [3.462988][3.462988:463032]()
    &mut txn_bob,
    &mut channel,
    [3.462988]
    [3.463032]
    txn_bob.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 377
    [3.44469]
    [3.463058]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 379
    [3.463066][3.26334:26405]()
    debug_to_file(&txn_bob, &channel.borrow(), "debug_bob1").unwrap();
    [3.463066]
    [3.463126]
    debug_to_file(&*txn_bob.read().unwrap(), &channel, "debug_bob1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 383
    [3.463214][3.44470:44543]()
    apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice1)?;
    [3.463214]
    [3.463286]
    apply::apply_change(
    &changes,
    &mut *txn_bob.write().unwrap(),
    &mut *channel.write().unwrap(),
    &alice1,
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 390
    [3.463328][3.463328:463351]()
    &mut repo_bob,
    [3.463328]
    [3.463351]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 392
    [3.463369][3.463369:463413]()
    &mut txn_bob,
    &mut channel,
    [3.463369]
    [3.463413]
    txn_bob.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 397
    [3.44558]
    [3.463439]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 399
    [3.463447][3.26406:26477]()
    debug_to_file(&txn_bob, &channel.borrow(), "debug_bob2").unwrap();
    [3.463447]
    [3.463507]
    debug_to_file(&*txn_bob.read().unwrap(), &channel, "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 412
    [3.463883][3.463883:463945]()
    let mut repo_alice = working_copy::memory::Memory::new();
    [3.463883]
    [3.463945]
    let repo_alice = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 418
    [3.464130][2.39607:39667](),[2.39667][3.464181:464214](),[3.464181][3.464181:464214]()
    let mut txn_alice = env_alice.mut_txn_begin().unwrap();
    txn_alice.add_file("file")?;
    [3.464130]
    [3.464214]
    let txn_alice = Arc::new(RwLock::new(env_alice.mut_txn_begin().unwrap()));
    txn_alice.write().unwrap().add_file("file")?;
  • replacement in libpijul/src/tests/add_file.rs at line 421
    [3.464215][3.464215:464371]()
    let mut channel = txn_alice.open_or_create_channel("main")?;
    let alice0 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    [3.464215]
    [3.464371]
    let channel = (&mut *txn_alice.write().unwrap()).open_or_create_channel("main")?;
    let alice0 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 430
    [3.464408][3.26478:26547](),[3.26547][3.464466:464544](),[3.32530][3.464466:464544](),[3.464466][3.464466:464544]()
    debug_to_file(&txn_alice, &channel.borrow(), "debug0").unwrap();
    txn_alice.add_dir("dir")?;
    txn_alice.move_file("file", "dir/file2")?;
    [3.464408]
    [3.464544]
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug0").unwrap();
    txn_alice.write().unwrap().add_dir("dir")?;
    txn_alice.write().unwrap().move_file("file", "dir/file2")?;
  • replacement in libpijul/src/tests/add_file.rs at line 436
    [3.464621][3.32531:32574](),[3.32574][3.464662:464753](),[3.464662][3.464662:464753]()
    debug_tree(&txn_alice, "debug_tree")?;
    let alice1 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    [3.464621]
    [3.464753]
    debug_tree(&*txn_alice.read().unwrap(), "debug_tree")?;
    let alice1 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 445
    [3.464790][3.26548:26617](),[3.26617][3.32635:32708](),[3.32635][3.32635:32708]()
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
    debug_tree(&txn_alice, "debug_tree")?;
    debug_inodes(&txn_alice);
    [3.464790]
    [3.464919]
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug1").unwrap();
    debug_tree(&*txn_alice.read().unwrap(), "debug_tree")?;
    debug_inodes(&*txn_alice.read().unwrap());
  • replacement in libpijul/src/tests/add_file.rs at line 452
    [3.465026][3.465026:465117](),[3.465117][3.26618:26687](),[3.26687][3.465175:465200](),[3.32769][3.465175:465200](),[3.465175][3.465175:465200]()
    let alice2 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    debug_to_file(&txn_alice, &channel.borrow(), "debug2").unwrap();
    txn_alice.commit()?;
    [3.465026]
    [3.465200]
    let alice2 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug2").unwrap();
    commit(txn_alice).unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 462
    [3.465201][3.465201:465261]()
    let mut repo_bob = working_copy::memory::Memory::new();
    [3.465201]
    [3.465261]
    let repo_bob = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 464
    [3.465323][2.39668:39724](),[2.39724][3.465370:465433](),[3.465370][3.465370:465433](),[3.465433][3.44559:44632]()
    let mut txn_bob = env_bob.mut_txn_begin().unwrap();
    let mut channel = txn_bob.open_or_create_channel("main")?;
    apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice0)?;
    [3.465323]
    [3.465505]
    let txn_bob = Arc::new(RwLock::new(env_bob.mut_txn_begin().unwrap()));
    let channel = (&mut *txn_bob.write().unwrap()).open_or_create_channel("main")?;
    apply::apply_change(
    &changes,
    &mut *txn_bob.write().unwrap(),
    &mut *channel.write().unwrap(),
    &alice0,
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 473
    [3.465547][3.465547:465570]()
    &mut repo_bob,
    [3.465547]
    [3.465570]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 475
    [3.465588][3.465588:465632]()
    &mut txn_bob,
    &mut channel,
    [3.465588]
    [3.465632]
    txn_bob.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 480
    [3.44647]
    [3.465658]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 484
    [3.465717][3.44648:44721]()
    apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice1)?;
    [3.465717]
    [3.465789]
    apply::apply_change(
    &changes,
    &mut *txn_bob.write().unwrap(),
    &mut *channel.write().unwrap(),
    &alice1,
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 491
    [3.465831][3.465831:465854]()
    &mut repo_bob,
    [3.465831]
    [3.465854]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 493
    [3.465872][3.465872:465916]()
    &mut txn_bob,
    &mut channel,
    [3.465872]
    [3.465916]
    txn_bob.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 498
    [3.44736]
    [3.465942]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 504
    [3.466058][3.44737:44810]()
    apply::apply_change(&changes, &mut txn_bob, &mut channel, &alice2)?;
    [3.466058]
    [3.466130]
    apply::apply_change(
    &changes,
    &mut *txn_bob.write().unwrap(),
    &mut *channel.write().unwrap(),
    &alice2,
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 511
    [3.466172][3.466172:466195]()
    &mut repo_bob,
    [3.466172]
    [3.466195]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 513
    [3.466213][3.466213:466257]()
    &mut txn_bob,
    &mut channel,
    [3.466213]
    [3.466257]
    txn_bob,
    channel,
  • edit in libpijul/src/tests/add_file.rs at line 518
    [3.44825]
    [3.466283]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 530
    [3.466500][3.466500:466562]()
    let mut repo_alice = working_copy::memory::Memory::new();
    [3.466500]
    [3.466562]
    let repo_alice = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 537
    [3.466813][2.39725:39785](),[2.39785][3.466864:466931](),[3.466864][3.466864:466931]()
    let mut txn_alice = env_alice.mut_txn_begin().unwrap();
    txn_alice.add_file("file")?;
    txn_alice.add_file("file2")?;
    [3.466813]
    [3.466931]
    let txn_alice = Arc::new(RwLock::new(env_alice.mut_txn_begin().unwrap()));
    txn_alice.write().unwrap().add_file("file")?;
    txn_alice.write().unwrap().add_file("file2")?;
  • replacement in libpijul/src/tests/add_file.rs at line 541
    [3.466932][3.466932:467118]()
    let mut channel = txn_alice.open_or_create_channel("main")?;
    record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    txn_alice.move_file("file", "file2")?;
    [3.466932]
    [3.467118]
    let channel = (&mut *txn_alice.write().unwrap()).open_or_create_channel("main")?;
    record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
    txn_alice.write().unwrap().move_file("file", "file2")?;
  • replacement in libpijul/src/tests/add_file.rs at line 551
    [3.467159][3.467159:467237](),[3.467237][3.26688:26757]()
    record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
    [3.467159]
    [3.467295]
    record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 578
    [3.467711][3.467711:467773]()
    let mut repo_alice = working_copy::memory::Memory::new();
    [3.467711]
    [3.467773]
    let repo_alice = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 584
    [3.467955][2.39786:39846](),[2.39846][3.468006:468036](),[3.468006][3.468006:468036]()
    let mut txn_alice = env_alice.mut_txn_begin().unwrap();
    txn_alice.add_file("a")?;
    [3.467955]
    [3.468036]
    let txn_alice = Arc::new(RwLock::new(env_alice.mut_txn_begin().unwrap()));
    txn_alice.write().unwrap().add_file("a")?;
  • replacement in libpijul/src/tests/add_file.rs at line 587
    [3.468037][3.468037:468193]()
    let mut channel = txn_alice.open_or_create_channel("main")?;
    let alice1 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    [3.468037]
    [3.468193]
    let channel = txn_alice.write().unwrap().open_or_create_channel("main")?;
    let alice1 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 596
    [3.468219][3.468219:468255]()
    txn_alice.move_file("a", "b")?;
    [3.468219]
    [3.468255]
    txn_alice.write().unwrap().move_file("a", "b")?;
  • replacement in libpijul/src/tests/add_file.rs at line 598
    [3.468289][3.468289:468380](),[3.468380][3.26758:26827]()
    let alice2 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
    [3.468289]
    [3.468438]
    let alice2 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 608
    [3.468470][3.468470:468506]()
    txn_alice.move_file("b", "a")?;
    [3.468470]
    [3.468506]
    txn_alice.write().unwrap().move_file("b", "a")?;
  • replacement in libpijul/src/tests/add_file.rs at line 610
    [3.468540][3.468540:468631](),[3.468631][3.26828:26897]()
    let alice3 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    debug_to_file(&txn_alice, &channel.borrow(), "debug2").unwrap();
    [3.468540]
    [3.468689]
    let alice3 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 620
    [3.468744][3.468744:468804]()
    let mut repo_bob = working_copy::memory::Memory::new();
    [3.468744]
    [3.468804]
    let repo_bob = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 622
    [3.468866][2.39847:39903](),[2.39903][3.468913:468980](),[3.468913][3.468913:468980]()
    let mut txn_bob = env_bob.mut_txn_begin().unwrap();
    let mut channel_bob = txn_bob.open_or_create_channel("main")?;
    [3.468866]
    [3.468980]
    let txn_bob = Arc::new(RwLock::new(env_bob.mut_txn_begin().unwrap()));
    let channel_bob = (&mut *txn_bob.write().unwrap()).open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/add_file.rs at line 625
    [3.468992][3.44826:44885]()
    .apply_change(&changes, &mut channel_bob, &alice1)
    [3.468992]
    [3.469050]
    .write()
    .unwrap()
    .apply_change(&changes, &mut *channel_bob.write().unwrap(), &alice1)
  • replacement in libpijul/src/tests/add_file.rs at line 630
    [3.469111][3.469111:469134]()
    &mut repo_bob,
    [3.469111]
    [3.469134]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 632
    [3.469152][3.469152:469200]()
    &mut txn_bob,
    &mut channel_bob,
    [3.469152]
    [3.469200]
    txn_bob.clone(),
    channel_bob.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 637
    [3.44900]
    [3.469226]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 640
    [3.469266][3.469266:469355](),[3.469355][3.26898:26973](),[3.26973][3.469419:469431](),[3.33019][3.469419:469431](),[3.469419][3.469419:469431](),[3.469431][3.44901:44960]()
    let bob1 = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "")?;
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob1").unwrap();
    txn_bob
    .apply_change(&changes, &mut channel_bob, &alice2)
    [3.469266]
    [3.469489]
    let bob1 = record_all(
    repo_bob.clone(),
    &changes,
    txn_bob.clone(),
    channel_bob.clone(),
    "",
    )?;
    debug_to_file(&*txn_bob.read().unwrap(), &channel_bob, "debug_bob1").unwrap();
    (&mut *txn_bob.write().unwrap())
    .apply_change(&changes, &mut *channel_bob.write().unwrap(), &alice2)
  • replacement in libpijul/src/tests/add_file.rs at line 651
    [3.469508][3.26974:27049]()
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob2").unwrap();
    [3.469508]
    [3.469572]
    debug_to_file(&*txn_bob.read().unwrap(), &channel_bob, "debug_bob2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 653
    [3.469614][3.469614:469637]()
    &mut repo_bob,
    [3.469614]
    [3.469637]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 655
    [3.469655][3.469655:469699]()
    &mut txn_bob,
    &mut channel,
    [3.469655]
    [3.469699]
    txn_bob.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 660
    [3.44975]
    [3.469725]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 664
    [3.469782][3.44976:45035]()
    .apply_change(&changes, &mut channel_bob, &alice3)
    [3.469782]
    [3.469840]
    .write()
    .unwrap()
    .apply_change(&changes, &mut *channel_bob.write().unwrap(), &alice3)
  • replacement in libpijul/src/tests/add_file.rs at line 668
    [3.469859][3.27050:27125]()
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob3").unwrap();
    [3.469859]
    [3.469923]
    debug_to_file(&*txn_bob.read().unwrap(), &channel_bob, "debug_bob3").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 670
    [3.469965][3.469965:469988]()
    &mut repo_bob,
    [3.469965]
    [3.469988]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 672
    [3.470006][3.470006:470050]()
    &mut txn_bob,
    &mut channel,
    [3.470006]
    [3.470050]
    txn_bob.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 677
    [3.45050]
    [3.470076]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 682
    [3.470156][3.470156:470249](),[3.470249][3.27126:27205]()
    let bob2 = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "")?;
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob4").unwrap();
    [3.470156]
    [3.470317]
    let bob2 = record_all(
    repo_bob.clone(),
    &changes,
    txn_bob.clone(),
    channel_bob.clone(),
    "",
    )?;
    debug_to_file(&*txn_bob.read().unwrap(), &channel_bob, "debug_bob4").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 693
    [3.470374][3.45051:45108]()
    .apply_change(&changes, &mut channel, &bob1)
    [3.470374]
    [3.470430]
    .write()
    .unwrap()
    .apply_change(&changes, &mut *channel.write().unwrap(), &bob1)
  • replacement in libpijul/src/tests/add_file.rs at line 697
    [3.470453][3.27206:27285]()
    debug_to_file(&txn_alice, &channel.borrow(), "debug_alice2").unwrap();
    [3.470453]
    [3.470521]
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 700
    [3.470584][3.470584:470613]()
    &mut repo_alice,
    [3.470584]
    [3.470613]
    repo_alice.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 702
    [3.470635][3.470635:470689]()
    &mut txn_alice,
    &mut channel,
    [3.470635]
    [3.470689]
    txn_alice.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 707
    [3.45127]
    [3.470723]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 714
    [3.470883][3.45128:45185]()
    .apply_change(&changes, &mut channel, &bob2)
    [3.470883]
    [3.470939]
    .write()
    .unwrap()
    .apply_change(&changes, &mut *channel.write().unwrap(), &bob2)
  • replacement in libpijul/src/tests/add_file.rs at line 718
    [3.470962][3.27286:27365]()
    debug_to_file(&txn_alice, &channel.borrow(), "debug_alice3").unwrap();
    [3.470962]
    [3.471030]
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug_alice3").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 720
    [3.471092][3.471092:471121]()
    &mut repo_alice,
    [3.471092]
    [3.471121]
    repo_alice.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 722
    [3.471143][3.471143:471197]()
    &mut txn_alice,
    &mut channel,
    [3.471143]
    [3.471197]
    txn_alice.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 727
    [3.45204]
    [3.471231]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 734
    [3.471436][3.471436:471463]()
    &mut repo_bob,
    [3.471436]
    [3.471463]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 736
    [3.471485][3.471485:471541]()
    &mut txn_bob,
    &mut channel_bob,
    [3.471485]
    [3.471541]
    txn_bob.clone(),
    channel_bob.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 741
    [3.45223]
    [3.471575]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 743
    [3.471587][3.27366:27445]()
    debug_to_file(&txn_bob, &channel_bob.borrow(), "debug_bob4").unwrap();
    [3.471587]
    [3.471655]
    debug_to_file(&*txn_bob.read().unwrap(), &channel_bob, "debug_bob4").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 748
    [3.471800][3.471800:471827]()
    &mut repo_bob,
    [3.471800]
    [3.471827]
    repo_bob.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 750
    [3.471849][3.471849:471905]()
    &mut txn_bob,
    &mut channel_bob,
    [3.471849]
    [3.471905]
    txn_bob.clone(),
    channel_bob.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 755
    [3.45242]
    [3.471939]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 759
    [3.471994][3.471994:472087]()
    let bob2 = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "")?;
    [3.471994]
    [3.472087]
    let bob2 = record_all(
    repo_bob.clone(),
    &changes,
    txn_bob.clone(),
    channel_bob.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 769
    [3.472144][3.45243:45300]()
    .apply_change(&changes, &mut channel, &bob1)
    [3.472144]
    [3.472200]
    .write()
    .unwrap()
    .apply_change(&changes, &mut *channel.write().unwrap(), &bob1)
  • replacement in libpijul/src/tests/add_file.rs at line 773
    [3.472223][3.27446:27525]()
    debug_to_file(&txn_alice, &channel.borrow(), "debug_alice2").unwrap();
    [3.472223]
    [3.472291]
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug_alice2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 776
    [3.472354][3.472354:472383]()
    &mut repo_alice,
    [3.472354]
    [3.472383]
    repo_alice.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 778
    [3.472405][3.472405:472459]()
    &mut txn_alice,
    &mut channel,
    [3.472405]
    [3.472459]
    txn_alice.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 783
    [3.45319]
    [3.472493]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 794
    [3.472825][3.45320:45377]()
    .apply_change(&changes, &mut channel, &bob2)
    [3.472825]
    [3.472881]
    .write()
    .unwrap()
    .apply_change(&changes, &mut *channel.write().unwrap(), &bob2)
  • replacement in libpijul/src/tests/add_file.rs at line 799
    [3.472966][3.472966:472995]()
    &mut repo_alice,
    [3.472966]
    [3.472995]
    repo_alice.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 801
    [3.473017][3.473017:473071]()
    &mut txn_alice,
    &mut channel,
    [3.473017]
    [3.473071]
    txn_alice.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 806
    [3.45396]
    [3.473105]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 813
    [3.473310][3.473310:473337]()
    &mut repo_bob,
    [3.473310]
    [3.473337]
    repo_bob,
  • replacement in libpijul/src/tests/add_file.rs at line 815
    [3.473359][3.473359:473415]()
    &mut txn_bob,
    &mut channel_bob,
    [3.473359]
    [3.473415]
    txn_bob,
    channel_bob,
  • edit in libpijul/src/tests/add_file.rs at line 820
    [3.45415]
    [3.473449]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 833
    [3.473753][3.473753:473815]()
    let mut repo_alice = working_copy::memory::Memory::new();
    [3.473753]
    [3.473815]
    let repo_alice = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 840
    [3.474074][2.39904:39964](),[2.39964][3.474125:474200](),[3.474125][3.474125:474200]()
    let mut txn_alice = env_alice.mut_txn_begin().unwrap();
    txn_alice.add_file("dir/file")?;
    txn_alice.add_file("dir/file2")?;
    [3.474074]
    [3.474200]
    let txn_alice = Arc::new(RwLock::new(env_alice.mut_txn_begin().unwrap()));
    txn_alice.write().unwrap().add_file("dir/file")?;
    txn_alice.write().unwrap().add_file("dir/file2")?;
  • replacement in libpijul/src/tests/add_file.rs at line 844
    [3.474201][3.474201:474357]()
    let mut channel = txn_alice.open_or_create_channel("main")?;
    let alice0 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    [3.474201]
    [3.474357]
    let channel = (&mut *txn_alice.write().unwrap()).open_or_create_channel("main")?;
    let alice0 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 853
    [3.474394][3.27526:27595]()
    debug_to_file(&txn_alice, &channel.borrow(), "debug0").unwrap();
    [3.474394]
    [3.474452]
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug0").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 858
    [3.474620][3.474620:474724]()
    txn_alice.move_file("dir/file", "dir2/file")?;
    txn_alice.move_file("dir/file2", "dir2/file2")?;
    [3.474620]
    [3.474724]
    txn_alice
    .write()
    .unwrap()
    .move_file("dir/file", "dir2/file")?;
    txn_alice
    .write()
    .unwrap()
    .move_file("dir/file2", "dir2/file2")?;
  • replacement in libpijul/src/tests/add_file.rs at line 867
    [3.474725][3.474725:474816]()
    let alice1 = record_all(&mut repo_alice, &changes, &mut txn_alice, &mut channel, "")?;
    [3.474725]
    [3.474816]
    let alice1 = record_all(
    repo_alice.clone(),
    &changes,
    txn_alice.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 875
    [3.474853][3.27596:27665]()
    debug_to_file(&txn_alice, &channel.borrow(), "debug1").unwrap();
    [3.474853]
    [3.474911]
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug1").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 877
    [3.474953][3.474953:474978]()
    &mut repo_alice,
    [3.474953]
    [3.474978]
    repo_alice.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 879
    [3.474996][3.474996:475042]()
    &mut txn_alice,
    &mut channel,
    [3.474996]
    [3.475042]
    txn_alice.clone(),
    channel.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 884
    [3.45430]
    [3.475068]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 886
    [3.475076][3.27666:27735]()
    debug_to_file(&txn_alice, &channel.borrow(), "debug2").unwrap();
    [3.475076]
    [3.475134]
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug2").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 890
    [3.475261][3.475261:475391]()
    txn_alice.move_file("dir2/file", "dir/file").unwrap_or(());
    txn_alice.move_file("dir2/file2", "dir/file2").unwrap_or(());
    [3.475261]
    [3.475391]
    txn_alice
    .write()
    .unwrap()
    .move_file("dir2/file", "dir/file")
    .unwrap_or(());
    txn_alice
    .write()
    .unwrap()
    .move_file("dir2/file2", "dir/file2")
    .unwrap_or(());
  • replacement in libpijul/src/tests/add_file.rs at line 905
    [3.475515][3.475515:475539]()
    &mut txn_alice,
    [3.475515]
    [3.475539]
    txn_alice.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 907
    [3.475569][3.31478:31513](),[3.31513][3.475591:475616](),[3.475591][3.475591:475616]()
    &mut channel.borrow_mut(),
    &mut repo_alice,
    [3.475569]
    [3.475616]
    channel.clone(),
    repo_alice.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 911
    [3.475649]
    [3.475649]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 915
    [3.475708][3.475708:475732]()
    &mut txn_alice,
    [3.475708]
    [3.475732]
    txn_alice.clone(),
  • replacement in libpijul/src/tests/add_file.rs at line 917
    [3.475762][3.31514:31549](),[3.31549][3.475784:475809](),[3.475784][3.475784:475809]()
    &mut channel.borrow_mut(),
    &mut repo_alice,
    [3.475762]
    [3.475809]
    channel.clone(),
    repo_alice.clone(),
  • edit in libpijul/src/tests/add_file.rs at line 921
    [3.475843]
    [3.475843]
    1,
  • replacement in libpijul/src/tests/add_file.rs at line 928
    [3.475943][3.31550:31605]()
    .map(|rec| rec.globalize(&txn_alice).unwrap())
    [3.475943]
    [3.475989]
    .map(|rec| rec.globalize(&*txn_alice.read().unwrap()).unwrap())
  • replacement in libpijul/src/tests/add_file.rs at line 931
    [3.476062][3.476062:476082]()
    &txn_alice,
    [3.476062]
    [3.476082]
    &*txn_alice.read().unwrap(),
  • replacement in libpijul/src/tests/add_file.rs at line 934
    [3.476118][3.476118:476140]()
    rec.contents,
    [3.476118]
    [3.476140]
    std::mem::take(&mut rec.contents.lock().unwrap()),
  • replacement in libpijul/src/tests/add_file.rs at line 946
    [3.476433][3.476433:476479]()
    &mut txn_alice,
    &mut channel,
    [3.476433]
    [3.476479]
    &mut *txn_alice.write().unwrap(),
    &channel,
  • replacement in libpijul/src/tests/add_file.rs at line 954
    [3.476583][3.27736:27805]()
    debug_to_file(&txn_alice, &channel.borrow(), "debug3").unwrap();
    [3.476583]
    [3.476641]
    debug_to_file(&*txn_alice.read().unwrap(), &channel, "debug3").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 956
    [3.476642][3.31628:31707]()
    let (alive, reachable) = check_alive(&txn_alice, &channel.borrow().graph);
    [3.476642]
    [3.476704]
    let (alive, reachable) =
    check_alive(&*txn_alice.read().unwrap(), &channel.read().unwrap().graph);
  • replacement in libpijul/src/tests/add_file.rs at line 976
    [3.477104][3.477104:477160]()
    let mut repo = working_copy::memory::Memory::new();
    [3.477104]
    [3.477160]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 981
    [3.477335][2.39965:40013]()
    let mut txn = env.mut_txn_begin().unwrap();
    [3.477335]
    [2.40013]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
  • replacement in libpijul/src/tests/add_file.rs at line 984
    [3.477413][2.40069:40153](),[2.40153][3.477480:477554](),[3.477480][3.477480:477554]()
    let mut channel = txn.write().unwrap().open_or_create_channel("main").unwrap();
    record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
    [3.477413]
    [3.477554]
    let channel = (&mut *txn.write().unwrap())
    .open_or_create_channel("main")
    .unwrap();
    record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 992
    [2.40214][3.477707:477781](),[3.477707][3.477707:477781](),[3.477781][3.27806:27868]()
    record_all(&mut repo, &changes, &mut txn, &mut channel, "").unwrap();
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
    [2.40214]
    [3.477832]
    record_all(repo.clone(), &changes, txn.clone(), channel.clone(), "").unwrap();
    debug_to_file(&*txn.read().unwrap(), &channel, "debug").unwrap();
  • replacement in libpijul/src/tests/add_file.rs at line 1002
    [3.477954][3.477954:478010]()
    let mut repo = working_copy::memory::Memory::new();
    [3.477954]
    [3.478010]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 1007
    [3.478129][2.40215:40267]()
    let mut txn = env.mut_txn_begin().unwrap();
    [3.478129]
    [2.40267]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
  • replacement in libpijul/src/tests/add_file.rs at line 1009
    [2.40319][2.40319:40399](),[2.40399][3.478270:478347](),[3.478270][3.478270:478347](),[3.478347][3.27869:27935](),[3.27935][3.478402:478478](),[3.33929][3.478402:478478](),[3.478402][3.478402:478478]()
    let mut channel = txn.write().unwrap().open_or_create_channel("main")?;
    record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
    let files: Vec<_> = crate::fs::iter_working_copy(&txn, Inode::ROOT)
    [2.40319]
    [3.31708]
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    record_all_output(repo, changes.clone(), txn.clone(), channel.clone(), "")?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug").unwrap();
    let files: Vec<_> = crate::fs::iter_working_copy(&*txn.read().unwrap(), Inode::ROOT)
  • replacement in libpijul/src/tests/add_file.rs at line 1024
    [3.478693][3.478693:478749]()
    let mut repo = working_copy::memory::Memory::new();
    [3.478693]
    [3.478749]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 1029
    [3.478868][2.40400:40532](),[2.40532][3.478974:479051](),[3.478974][3.478974:479051](),[3.479051][3.27936:28002](),[3.28002][3.479106:479182](),[3.33987][3.479106:479182](),[3.479106][3.479106:479182]()
    let mut txn = env.mut_txn_begin().unwrap();
    let mut channel = txn.write().unwrap().open_or_create_channel("main")?;
    record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    debug_to_file(&txn, &channel.borrow(), "debug").unwrap();
    let files: Vec<_> = crate::fs::iter_working_copy(&txn, Inode::ROOT)
    [3.478868]
    [3.31744]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    let channel = txn.write().unwrap().open_or_create_channel("main")?;
    record_all_output(repo.clone(), changes, txn.clone(), channel.clone(), "")?;
    debug_to_file(&*txn.read().unwrap(), &channel, "debug").unwrap();
    let files: Vec<_> = crate::fs::iter_working_copy(&*txn.read().unwrap(), Inode::ROOT)
  • replacement in libpijul/src/tests/add_file.rs at line 1045
    [3.479402][3.479402:479458]()
    let mut repo = working_copy::memory::Memory::new();
    [3.479402]
    [3.479458]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 1049
    [3.479571][2.40533:40657](),[2.40657][3.479669:479762](),[3.479669][3.479669:479762]()
    let mut txn = env.mut_txn_begin().unwrap();
    let mut channel = txn.write().unwrap().open_or_create_channel("main")?;
    assert!(record_all_output(&mut repo, &changes, &mut txn, &mut channel, "dir").is_err());
    [3.479571]
    [3.479762]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
    assert!(record_all_output(repo, changes, txn, channel, "dir").is_err());
  • replacement in libpijul/src/tests/add_file.rs at line 1059
    [3.479883][3.479883:479939]()
    let mut repo = working_copy::memory::Memory::new();
    [3.479883]
    [3.479939]
    let repo = Arc::new(working_copy::memory::Memory::new());
  • replacement in libpijul/src/tests/add_file.rs at line 1063
    [3.480052][2.40658:40782]()
    let mut txn = env.mut_txn_begin().unwrap();
    let mut channel = txn.write().unwrap().open_or_create_channel("main")?;
    [3.480052]
    [3.480150]
    let txn = Arc::new(RwLock::new(env.mut_txn_begin().unwrap()));
    let channel = (&mut *txn.write().unwrap()).open_or_create_channel("main")?;
  • replacement in libpijul/src/tests/add_file.rs at line 1068
    [2.40827][3.480237:480310](),[3.480237][3.480237:480310]()
    record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [2.40827]
    [3.480310]
    record_all_output(
    repo.clone(),
    changes.clone(),
    txn.clone(),
    channel.clone(),
    "",
    )?;
  • replacement in libpijul/src/tests/add_file.rs at line 1076
    [3.480369][3.480369:480442]()
    record_all_output(&mut repo, &changes, &mut txn, &mut channel, "")?;
    [3.480369]
    [3.480442]
    record_all_output(repo, changes, txn, channel, "")?;