Massive cleanup, and simplification

[?]
Nov 25, 2020, 12:04 PM
I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC

Dependencies

  • [2] PJ7T2VFL Do not hang on locked repositories
  • [3] YAJAXIV5 Unrecording changes atomically
  • [4] AXVPNZ2N commands/git: fix imports
  • [5] YACC5QR6 Don't delete non-block edges unless they're at the top of a block
  • [6] 7UPL3Y2A Unrecord: don't restore the same unrecorded file deletion twice in the inodes and tree tables
  • [7] 74HX2XZD Cleanup and debugging
  • [8] YDKNUL6B Add `diff --short` that lists changes without showing them
  • [9] UNZXTNSJ Change text format: order dependencies in the order they were on the channel at record time
  • [10] M5FK3ABT Complete dependencies when pushing and pulling
  • [11] Q4SVMHAE Removing --channel from the changes command
  • [12] ISQJRA3O Fixing the parsing of zombie resurrection in the change text format
  • [13] UDHP4ZVB Fixing SSH asynchronicity issues
  • [14] GURIBVW6 Fixing the pager
  • [15] FBXYP7QM Forgot to add remote::http
  • [16] VIHXB7SG commands: set up pager for diff, change, and credit
  • [17] B5Z4IMEU Generating Cargo.nix for pijul 1.0.0-alpha.6
  • [18] VMPAOJS2 Don't output after pushing to a local channel
  • [19] IMCZFTIJ Update selection instructions to also mention pushing
  • [20] GUNVHCG3 commands/pushpull: show change description if it exists
  • [21] VQPAUKBQ channel switch as an alias to reset
  • [22] UCQD3JDH Fix build errors caused by sanakirja 0.14
  • [23] 5HF7C67M push/pull: fixed "changes" arguments
  • [24] GLMOA3PF More edges in "credit"
  • [25] BAUL3WR2 Format, versions, README
  • [26] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [27] UBCBQ5FG Removing pijul/src/commands/checkout.rs (unused file), as well as litorg comments
  • [28] AN7IDX26 pijul: added ChangesNotFound error variant
  • [29] L5PHFTIE Minor simplification
  • [30] Q7CAYX5N Fixing Windows compilation
  • [31] XWETQ4DE Upgrading versions
  • [32] L4JXJHWX pijul/*: reorganize imports and remove extern crate
  • [33] M3VTIZCP Validate change before reset
  • [34] 23LVKATN Use pager crate for log output
  • [35] 76PCXGML Pushing to, and pulling from the local repository
  • [36] G734WNM6 flake.nix: use crate2nix
  • [37] NLGQAH4H Credit and reset relative to current directory instead of the root
  • [38] CVAT6LN3 Fixing git import, and adding more useful feedback (with `RUST_LOG="pijul=info"`)

Change contents

  • edit in pijul/src/remote/ssh.rs at line 10
    [17.156][17.156:251]()
    use libpijul::pristine::{Base32, ChannelRef, Hash, Merkle, MutTxnT};
    use libpijul::MutTxnTExt;
  • edit in pijul/src/remote/ssh.rs at line 10
    [17.156]
    [17.251]
    use libpijul::{Base32, ChannelRef, Hash, Merkle, MutTxnT, MutTxnTExt, TxnTExt};
  • edit in pijul/src/remote/ssh.rs at line 425
    [13.6637][13.6637:6750]()
    State::Archive { ref mut sender, ref mut w, ref mut len, ref mut len_n, ref mut conflicts } => {
  • edit in pijul/src/remote/ssh.rs at line 425
    [13.6637]
    [13.6750]
    State::Archive {
    ref mut sender,
    ref mut w,
    ref mut len,
    ref mut len_n,
    ref mut conflicts,
    } => {
  • edit in pijul/src/remote/ssh.rs at line 628
    [13.8468][13.8468:8554]()
    *self.state.lock().await = State::Changelist {
    sender,
    };
  • edit in pijul/src/remote/ssh.rs at line 628
    [13.8468]
    [17.42222]
    *self.state.lock().await = State::Changelist { sender };
  • edit in pijul/src/remote/ssh.rs at line 713
    [13.9905][13.9905:9927]()
    break
  • edit in pijul/src/remote/ssh.rs at line 713
    [13.9905]
    [17.49729]
    break;
  • edit in pijul/src/remote/ssh.rs at line 720
    [17.49821][17.49821:49868]()
    pub async fn clone_channel<T: MutTxnTExt>(
  • edit in pijul/src/remote/ssh.rs at line 720
    [17.49821]
    [17.49868]
    pub async fn clone_channel<T: TxnTExt + MutTxnTExt>(
  • edit in pijul/src/remote/ssh.rs at line 757
    [17.51779][17.51779:51899]()
    for (_, (ch, _)) in txn.changeid_log(&channel_, 0) {
    let h = txn.get_external(ch).unwrap();
  • edit in pijul/src/remote/ssh.rs at line 757
    [17.51779]
    [17.51899]
    for (_, (h, _)) in txn.log(&channel_, 0) {
  • edit in pijul/src/remote/mod.rs at line 4
    [17.439][17.52519:52599](),[17.52519][17.52519:52599]()
    use libpijul::pristine::{Base32, ChannelRef, Hash, Merkle, MutTxnT, RemoteRef};
  • edit in pijul/src/remote/mod.rs at line 4
    [17.439]
    [17.52599]
    use libpijul::pristine::{Base32, ChannelRef, Hash, Merkle, MutTxnT, RemoteRef, TxnT};
  • edit in pijul/src/remote/mod.rs at line 156
    [17.56691][17.1394:1452]()
    pub async fn update_changelist<T: MutTxnT + TxnTExt>(
  • edit in pijul/src/remote/mod.rs at line 156
    [17.56691]
    [17.56739]
    pub async fn update_changelist<T: MutTxnTExt + TxnTExt>(
  • edit in pijul/src/remote/mod.rs at line 287
    [17.60931][17.60931:60977]()
    use libpijul::pristine::TxnT;
  • edit in pijul/src/remote/mod.rs at line 345
    [17.63549][17.63549:63595]()
    async fn download_changelist<T: MutTxnT>(
  • edit in pijul/src/remote/mod.rs at line 345
    [17.63549]
    [17.63595]
    async fn download_changelist<T: MutTxnTExt>(
  • edit in pijul/src/remote/mod.rs at line 461
    [17.69159][13.11168:11263]()
    self
    .download_changes(&to_download_, &mut send, &mut change_path_, false)
  • edit in pijul/src/remote/mod.rs at line 461
    [17.69159]
    [13.11263]
    self.download_changes(&to_download_, &mut send, &mut change_path_, false)
  • edit in pijul/src/remote/mod.rs at line 591
    [17.74770][17.74770:74830]()
    pub async fn complete_changes<T: MutTxnTExt + TxnTExt>(
  • edit in pijul/src/remote/mod.rs at line 591
    [17.74770]
    [17.74830]
    pub async fn complete_changes<T: MutTxnT + TxnTExt>(
  • edit in pijul/src/remote/mod.rs at line 638
    [17.76925][17.76925:77531]()
    for (v_, e) in txn.iter_graph(&channel.graph, v, None) {
    if v_.change < change {
    continue;
    } else if v_.change > change {
    break;
    }
    if e.flag.contains(libpijul::pristine::EdgeFlags::PARENT)
    && !e.flag.contains(libpijul::pristine::EdgeFlags::DELETED)
    {
    // Alive!
    debug!("sending alive");
    send_hash.send(*c).await?;
    debug!("sent");
    break;
    }
  • edit in pijul/src/remote/mod.rs at line 638
    [17.76925]
    [17.77531]
    if txn.is_alive(&channel, v) {
    send_hash.send(*c).await?;
  • edit in pijul/src/remote/local.rs at line 122
    [13.12233][13.12233:12258]()
    continue
  • edit in pijul/src/remote/local.rs at line 122
    [13.12233]
    [13.12258]
    continue;
  • edit in pijul/src/remote/local.rs at line 138
    [17.3753][17.3753:3838](),[17.3882][17.3882:3885]()
    pub fn upload_changes<
    T: MutTxnTExt,
    C: libpijul::changestore::ChangeStore,
    >(
  • edit in pijul/src/remote/local.rs at line 138
    [17.3753]
    [17.3885]
    pub fn upload_changes<T: MutTxnTExt, C: libpijul::changestore::ChangeStore>(
  • edit in pijul/src/remote/http.rs at line 1
    [15.10]
    [15.11]
    use libpijul::pristine::Base32;
  • edit in pijul/src/remote/http.rs at line 4
    [15.55][15.55:87]()
    use libpijul::pristine::Base32;
  • edit in pijul/src/remote/http.rs at line 13
    [15.222][15.222:432]()
    pub async fn download_changes(&mut self, hashes: &[libpijul::pristine::Hash], send: &mut tokio::sync::mpsc::Sender<libpijul::pristine::Hash>, path: &mut PathBuf, _full: bool) -> Result<(), anyhow::Error> {
  • edit in pijul/src/remote/http.rs at line 13
    [15.222]
    [15.432]
    pub async fn download_changes(
    &mut self,
    hashes: &[libpijul::pristine::Hash],
    send: &mut tokio::sync::mpsc::Sender<libpijul::pristine::Hash>,
    path: &mut PathBuf,
    _full: bool,
    ) -> Result<(), anyhow::Error> {
  • edit in pijul/src/remote/http.rs at line 21
    [15.458][15.458:576]()
    libpijul::changestore::filesystem::push_filename(
    path,
    c,
    );
  • edit in pijul/src/remote/http.rs at line 21
    [15.458]
    [15.576]
    libpijul::changestore::filesystem::push_filename(path, c);
  • edit in pijul/src/remote/http.rs at line 27
    [15.864][15.864:953]()
    let mut res = self.client.get(&url).query(&[("change", c32)]).send().await?;
  • edit in pijul/src/remote/http.rs at line 27
    [15.864]
    [15.953]
    let mut res = self
    .client
    .get(&url)
    .query(&[("change", c32)])
    .send()
    .await?;
  • edit in pijul/src/remote/http.rs at line 37
    [15.1107][15.1107:1144]()
    .into());
  • edit in pijul/src/remote/http.rs at line 37
    [15.1107]
    [15.1144]
    .into());
  • edit in pijul/src/remote/http.rs at line 43
    [15.1313][15.1313:1335]()
    break
  • edit in pijul/src/remote/http.rs at line 43
    [15.1313]
    [15.1335]
    break;
  • edit in pijul/src/main.rs at line 11
    [17.694][17.694:716]()
    use thiserror::Error;
  • edit in pijul/src/main.rs at line 12
    [3.32]
    [17.716]
    use thiserror::Error;
  • edit in pijul/src/main.rs at line 165
    [3.133][3.133:203]()
    CannotUnrecord { change: String, dep: libpijul::pristine::Hash },
  • edit in pijul/src/main.rs at line 165
    [3.133]
    [17.88054]
    CannotUnrecord {
    change: String,
    dep: libpijul::pristine::Hash,
    },
  • edit in pijul/src/commands/upgrade.rs at line 6
    [17.93476][17.93476:93560]()
    use libpijul::pristine::{Hash, MutTxnT, TxnT};
    use libpijul::{MutTxnTExt, TxnTExt};
  • edit in pijul/src/commands/upgrade.rs at line 6
    [17.93476]
    [17.1106]
    use libpijul::{Hash, MutTxnT, MutTxnTExt, TxnT, TxnTExt};
  • edit in pijul/src/commands/unrecord.rs at line 4
    [17.1160][3.204:245](),[3.245][17.1209:1235](),[17.1209][17.1209:1235]()
    use libpijul::pristine::{MutTxnT, TxnT};
    use libpijul::MutTxnTExt;
  • edit in pijul/src/commands/unrecord.rs at line 4
    [17.1160]
    [17.1235]
    use libpijul::{MutTxnT, MutTxnTExt, TxnT};
  • edit in pijul/src/commands/unrecord.rs at line 33
    [3.506][3.506:594]()
    let n = txn.get_changeset(&channel_.changes, change_id, None).unwrap();
  • edit in pijul/src/commands/unrecord.rs at line 33
    [3.506]
    [3.594]
    let n = txn
    .get_changeset(&channel_.changes, change_id, None)
    .unwrap();
  • edit in pijul/src/commands/unrecord.rs at line 52
    [3.974][3.974:1009]()
    }).into())
  • edit in pijul/src/commands/unrecord.rs at line 52
    [3.974]
    [17.97363]
    })
    .into());
  • edit in pijul/src/commands/reset.rs at line 4
    [17.1330][17.97704:97774](),[17.97704][17.97704:97774]()
    use libpijul::pristine::MutTxnT;
    use libpijul::{MutTxnTExt, TxnTExt};
  • edit in pijul/src/commands/reset.rs at line 4
    [17.1330]
    [17.1331]
    use libpijul::{MutTxnT, MutTxnTExt, TxnT, TxnTExt};
  • edit in pijul/src/commands/reset.rs at line 36
    [17.98334][17.98334:98372]()
    use libpijul::pristine::TxnT;
  • edit in pijul/src/commands/reset.rs at line 74
    [17.835][17.835:869]()
    return Ok(())
  • edit in pijul/src/commands/reset.rs at line 74
    [17.835]
    [17.869]
    return Ok(());
  • edit in pijul/src/commands/record.rs at line 9
    [17.101876][17.101876:101974]()
    use libpijul::pristine::{Base32, ChannelRef, MutTxnT, TxnT};
    use libpijul::{MutTxnTExt, TxnTExt};
  • edit in pijul/src/commands/record.rs at line 9
    [17.101876]
    [17.1504]
    use libpijul::{Base32, ChannelRef, MutTxnT, MutTxnTExt, TxnT, TxnTExt};
  • edit in pijul/src/commands/record.rs at line 142
    [17.106435][17.106435:106498]()
    fn record<T: TxnT + TxnTExt + MutTxnTExt, C: ChangeStore>(
  • edit in pijul/src/commands/record.rs at line 142
    [17.106435]
    [17.106498]
    fn record<T: TxnTExt + MutTxnTExt, C: ChangeStore>(
  • edit in pijul/src/commands/record.rs at line 154
    [17.106819][17.106819:106865]()
    Option<libpijul::pristine::Hash>,
  • edit in pijul/src/commands/record.rs at line 154
    [17.106819]
    [17.106865]
    Option<libpijul::Hash>,
  • edit in pijul/src/commands/record.rs at line 254
    [17.110071][17.110071:110107]()
    hash: libpijul::pristine::Hash,
  • edit in pijul/src/commands/record.rs at line 254
    [17.110071]
    [17.110107]
    hash: libpijul::Hash,
  • edit in pijul/src/commands/pushpull.rs at line 8
    [17.111707][17.111707:111785]()
    use libpijul::pristine::{MutTxnT, TxnT};
    use libpijul::{MutTxnTExt, TxnTExt};
  • edit in pijul/src/commands/pushpull.rs at line 8
    [17.111707]
    [17.1743]
    use libpijul::{MutTxnT, MutTxnTExt, TxnT, TxnTExt};
  • edit in pijul/src/commands/pushpull.rs at line 227
    [10.275][10.275:306]()
    break comp
  • edit in pijul/src/commands/pushpull.rs at line 227
    [10.275]
    [10.306]
    break comp;
  • edit in pijul/src/commands/pushpull.rs at line 239
    [17.117334][17.5746:5775](),[17.5815][17.5815:5955]()
    .upload_changes(
    &mut txn,
    repo.changes_dir.clone(),
    push_channel,
    &to_upload,
    )
  • edit in pijul/src/commands/pushpull.rs at line 239
    [17.117334]
    [17.117414]
    .upload_changes(&mut txn, repo.changes_dir.clone(), push_channel, &to_upload)
  • edit in pijul/src/commands/pushpull.rs at line 329
    [17.119192][17.119192:119271]()
    let r: Result<Vec<libpijul::pristine::Hash>, anyhow::Error> = self
  • edit in pijul/src/commands/pushpull.rs at line 329
    [17.119192]
    [17.119271]
    let r: Result<Vec<libpijul::Hash>, anyhow::Error> = self
  • edit in pijul/src/commands/pushpull.rs at line 367
    [10.685][10.685:716]()
    break comp
  • edit in pijul/src/commands/pushpull.rs at line 367
    [10.685]
    [10.716]
    break comp;
  • edit in pijul/src/commands/pushpull.rs at line 405
    [17.121285][17.121285:121328]()
    pullable: &[libpijul::pristine::Hash],
  • edit in pijul/src/commands/pushpull.rs at line 405
    [17.121285]
    [17.121328]
    pullable: &[libpijul::Hash],
  • edit in pijul/src/commands/pushpull.rs at line 407
    [17.121366][17.121366:121402]()
    use libpijul::pristine::Base32;
  • edit in pijul/src/commands/pushpull.rs at line 407
    [17.121366]
    [17.121402]
    use libpijul::Base32;
  • edit in pijul/src/commands/pushpull.rs at line 456
    [17.122374][17.122374:122475]()
    fn parse_changelist(o: &[u8]) -> Vec<libpijul::pristine::Hash> {
    use libpijul::pristine::Base32;
  • edit in pijul/src/commands/pushpull.rs at line 456
    [17.122374]
    [17.122475]
    fn parse_changelist(o: &[u8]) -> Vec<libpijul::Hash> {
    use libpijul::Base32;
  • edit in pijul/src/commands/pushpull.rs at line 460
    [17.122537][17.122537:122618]()
    .filter_map(|l| libpijul::pristine::Hash::from_base32(l.as_bytes()))
  • edit in pijul/src/commands/pushpull.rs at line 460
    [17.122537]
    [17.122618]
    .filter_map(|l| libpijul::Hash::from_base32(l.as_bytes()))
  • edit in pijul/src/commands/pushpull.rs at line 469
    [10.854][10.854:995]()
    original: &[libpijul::pristine::Hash],
    now: &[libpijul::pristine::Hash],
    ) -> Result<Vec<libpijul::pristine::Hash>, anyhow::Error> {
  • edit in pijul/src/commands/pushpull.rs at line 469
    [10.854]
    [10.995]
    original: &[libpijul::Hash],
    now: &[libpijul::Hash],
    ) -> Result<Vec<libpijul::Hash>, anyhow::Error> {
  • edit in pijul/src/commands/pushpull.rs at line 491
    [17.122724][17.122724:122805]()
    original: &[libpijul::pristine::Hash],
    now: &[libpijul::pristine::Hash],
  • edit in pijul/src/commands/pushpull.rs at line 491
    [17.122724]
    [17.122805]
    original: &[libpijul::Hash],
    now: &[libpijul::Hash],
  • edit in pijul/src/commands/protocol.rs at line 9
    [17.1961][17.123378:123476](),[17.123378][17.123378:123476]()
    use libpijul::pristine::{Base32, ChannelRef, Hash, MutTxnT};
    use libpijul::{MutTxnTExt, TxnTExt};
  • edit in pijul/src/commands/protocol.rs at line 9
    [17.1961]
    [17.1962]
    use libpijul::{Base32, ChannelRef, Hash, MutTxnT, MutTxnTExt, TxnT, TxnTExt};
  • edit in pijul/src/commands/protocol.rs at line 35
    [17.124435][17.124435:124518]()
    fn load_channel<T: MutTxnT>(txn: &T, name: &str) -> Result<ChannelRef<T>, Error> {
  • edit in pijul/src/commands/protocol.rs at line 35
    [17.124435]
    [17.124518]
    fn load_channel<T: MutTxnTExt>(txn: &T, name: &str) -> Result<ChannelRef<T>, Error> {
  • edit in pijul/src/commands/protocol.rs at line 53
    [17.124984][17.124984:125022]()
    use libpijul::pristine::TxnT;
  • edit in pijul/src/commands/protocol.rs at line 195
    [17.131473][17.131473:131707]()
    let state: libpijul::pristine::Merkle = hashes.next().unwrap().parse().unwrap();
    let extra: Vec<libpijul::pristine::Hash> =
    hashes.map(|x| x.parse().unwrap()).collect();
  • edit in pijul/src/commands/protocol.rs at line 195
    [17.131473]
    [17.131707]
    let state: libpijul::Merkle = hashes.next().unwrap().parse().unwrap();
    let extra: Vec<libpijul::Hash> = hashes.map(|x| x.parse().unwrap()).collect();
  • edit in pijul/src/commands/log.rs at line 6
    [17.134460][17.134460:134515]()
    use libpijul::pristine::Base32;
    use libpijul::TxnTExt;
  • edit in pijul/src/commands/log.rs at line 6
    [17.134460]
    [14.28]
    use libpijul::{Base32, TxnT, TxnTExt};
  • edit in pijul/src/commands/log.rs at line 30
    [17.135052][17.135052:135090]()
    use libpijul::pristine::TxnT;
  • edit in pijul/src/commands/init.rs at line 4
    [17.2201][17.2201:2234]()
    use libpijul::pristine::MutTxnT;
  • edit in pijul/src/commands/init.rs at line 4
    [17.2201]
    [17.2234]
    use libpijul::MutTxnT;
  • edit in pijul/src/commands/git.rs at line 8
    [4.16][17.2237:2264](),[17.2237][17.2237:2264]()
    use libpijul::pristine::*;
  • edit in pijul/src/commands/git.rs at line 28
    [17.137833][17.137833:137876]()
    state: libpijul::pristine::Merkle,
  • edit in pijul/src/commands/git.rs at line 28
    [17.137833]
    [17.137876]
    state: libpijul::Merkle,
  • edit in pijul/src/commands/git.rs at line 78
    [17.139340][17.139340:139404]()
    root: Vec<(git2::Oid, Option<libpijul::pristine::Merkle>)>,
  • edit in pijul/src/commands/git.rs at line 78
    [17.139340]
    [17.139404]
    root: Vec<(git2::Oid, Option<libpijul::Merkle>)>,
  • edit in pijul/src/commands/git.rs at line 100
    [17.140110][17.140110:140323]()
    let db: ::sanakirja::Db<git2::Oid, libpijul::pristine::Merkle> =
    if let Some(db) = txn_git.root(0) {
    db
    } else {
    txn_git.create_db()?
    };
  • edit in pijul/src/commands/git.rs at line 100
    [17.140110]
    [17.140323]
    let db: ::sanakirja::Db<git2::Oid, libpijul::Merkle> = if let Some(db) = txn_git.root(0) {
    db
    } else {
    txn_git.create_db()?
    };
  • edit in pijul/src/commands/git.rs at line 328
    [17.147667][17.147667:147706]()
    state: libpijul::pristine::Merkle,
  • edit in pijul/src/commands/git.rs at line 328
    [17.147667]
    [17.147706]
    state: libpijul::Merkle,
  • edit in pijul/src/commands/git.rs at line 332
    [17.147840][17.147840:148025]()
    let mut db: ::sanakirja::Db<git2::Oid, libpijul::pristine::Merkle> =
    if let Some(db) = txn.root(0) {
    db
    } else {
    txn.create_db()?
    };
  • edit in pijul/src/commands/git.rs at line 332
    [17.147840]
    [17.148025]
    let mut db: ::sanakirja::Db<git2::Oid, libpijul::Merkle> = if let Some(db) = txn.root(0) {
    db
    } else {
    txn.create_db()?
    };
  • edit in pijul/src/commands/git.rs at line 349
    [17.148275][17.148275:148327]()
    ) -> (bool, Vec<(libpijul::pristine::Hash, u64)>) {
  • edit in pijul/src/commands/git.rs at line 349
    [17.148275]
    [17.148327]
    ) -> (bool, Vec<(libpijul::Hash, u64)>) {
  • edit in pijul/src/commands/git.rs at line 592
    [17.157761][17.157761:157818]()
    ) -> Result<libpijul::pristine::Merkle, anyhow::Error> {
  • edit in pijul/src/commands/git.rs at line 592
    [17.157761]
    [17.157818]
    ) -> Result<libpijul::Merkle, anyhow::Error> {
  • edit in pijul/src/commands/git.rs at line 685
    [17.160679][17.160679:160829]()
    ) -> Result<
    (
    usize,
    Option<libpijul::pristine::Hash>,
    Option<libpijul::pristine::Merkle>,
    ),
    anyhow::Error,
    > {
  • edit in pijul/src/commands/git.rs at line 685
    [17.160679]
    [17.160829]
    ) -> Result<(usize, Option<libpijul::Hash>, Option<libpijul::Merkle>), anyhow::Error> {
  • edit in pijul/src/commands/git.rs at line 730
    [17.162231][17.162231:162275]()
    hash: Option<libpijul::pristine::Hash>,
  • edit in pijul/src/commands/git.rs at line 730
    [17.162231]
    [17.162275]
    hash: Option<libpijul::Hash>,
  • edit in pijul/src/commands/fork.rs at line 4
    [17.2350][17.167909:167976](),[17.167909][17.167909:167976]()
    use libpijul::pristine::{MutTxnT, TxnT};
    use libpijul::MutTxnTExt;
  • edit in pijul/src/commands/fork.rs at line 4
    [17.2350]
    [17.2351]
    use libpijul::{MutTxnT, MutTxnTExt, TxnT};
  • edit in pijul/src/commands/file_operations.rs at line 5
    [17.2421][17.2421:2491]()
    use libpijul::pristine::MutTxnT;
    use libpijul::{MutTxnTExt, TxnTExt};
  • edit in pijul/src/commands/file_operations.rs at line 5
    [17.2421]
    [17.2491]
    use libpijul::{MutTxnT, MutTxnTExt, TxnTExt};
  • edit in pijul/src/commands/diff.rs at line 7
    [17.2595][17.2595:2654]()
    use libpijul::pristine::MutTxnT;
    use libpijul::MutTxnTExt;
  • edit in pijul/src/commands/diff.rs at line 7
    [17.2595]
    [16.47]
    use libpijul::{MutTxnT, MutTxnTExt};
  • edit in pijul/src/commands/diff.rs at line 110
    [8.209][8.209:1479]()
    Record::FileMove { path, .. } =>
    format!("MV {}\n", path),
    Record::FileDel { path, .. } =>
    format!("D {}\n", path),
    Record::FileUndel { path, .. } =>
    format!("UD {}\n", path),
    Record::FileAdd { path, .. } =>
    format!("A {}", path),
    Record::SolveNameConflict { path, .. } =>
    format!("SC {}", path),
    Record::UnsolveNameConflict { path, .. } =>
    format!("UC {}", path),
    Record::Edit { local: Local { path, .. }, .. } =>
    format!("M {}", path),
    Record::Replacement { local: Local { path, .. }, .. } =>
    format!("R {}", path),
    Record::SolveOrderConflict { local: Local { path, .. }, .. } =>
    format!("SC {}", path),
    Record::UnsolveOrderConflict { local: Local { path, .. }, .. } =>
    format!("UC {}", path),
    Record::ResurrectZombies { local: Local { path, .. }, .. } =>
    format!("RZ {}", path),
  • edit in pijul/src/commands/diff.rs at line 110
    [8.209]
    [8.1479]
    Record::FileMove { path, .. } => format!("MV {}\n", path),
    Record::FileDel { path, .. } => format!("D {}\n", path),
    Record::FileUndel { path, .. } => format!("UD {}\n", path),
    Record::FileAdd { path, .. } => format!("A {}", path),
    Record::SolveNameConflict { path, .. } => format!("SC {}", path),
    Record::UnsolveNameConflict { path, .. } => format!("UC {}", path),
    Record::Edit {
    local: Local { path, .. },
    ..
    } => format!("M {}", path),
    Record::Replacement {
    local: Local { path, .. },
    ..
    } => format!("R {}", path),
    Record::SolveOrderConflict {
    local: Local { path, .. },
    ..
    } => format!("SC {}", path),
    Record::UnsolveOrderConflict {
    local: Local { path, .. },
    ..
    } => format!("UC {}", path),
    Record::ResurrectZombies {
    local: Local { path, .. },
    ..
    } => format!("RZ {}", path),
  • edit in pijul/src/commands/diff.rs at line 140
    [8.1579][8.1579:1633]()
    for ch in changes { println!("{}", ch); }
  • edit in pijul/src/commands/diff.rs at line 140
    [8.1579]
    [17.177020]
    for ch in changes {
    println!("{}", ch);
    }
  • edit in pijul/src/commands/debug.rs at line 4
    [17.2753]
    [17.2753]
    use libpijul::TxnT;
  • edit in pijul/src/commands/debug.rs at line 21
    [17.178176][17.178176:178214](),[17.178214][7.0:95]()
    use libpijul::pristine::TxnT;
    txn.debug_inodes();
    txn.debug_tree_print();
    txn.debug_revtree_print();
  • edit in pijul/src/commands/debug.rs at line 21
    [17.178176]
    [17.178214]
    libpijul::pristine::debug_inodes(&txn);
    libpijul::pristine::debug_tree_print(&txn);
    libpijul::pristine::debug_revtree_print(&txn);
  • edit in pijul/src/commands/debug.rs at line 34
    [17.178599][17.178599:178648]()
    txn.debug(&channel, std::io::stdout())?;
  • edit in pijul/src/commands/debug.rs at line 34
    [17.178599]
    [17.178648]
    libpijul::pristine::debug(&txn, &channel, std::io::stdout())?;
  • edit in pijul/src/commands/credit.rs at line 5
    [17.2827][17.178738:178808](),[17.178738][17.178738:178808]()
    use libpijul::pristine::{ChangeId, Channel, EdgeFlags, TxnT, Vertex};
  • edit in pijul/src/commands/credit.rs at line 6
    [17.178851][17.178851:178874]()
    use libpijul::TxnTExt;
  • edit in pijul/src/commands/credit.rs at line 6
    [17.178851]
    [17.2828]
    use libpijul::{ChangeId, Channel, EdgeFlags, TxnT, TxnTExt, Vertex};
  • edit in pijul/src/commands/credit.rs at line 63
    [17.180479][17.180479:180533]()
    pub struct Creditor<'a, W: std::io::Write, T: TxnT> {
  • edit in pijul/src/commands/credit.rs at line 63
    [17.180479]
    [17.180533]
    pub struct Creditor<'a, W: std::io::Write, T: TxnTExt> {
  • edit in pijul/src/commands/credit.rs at line 72
    [17.180661][17.180661:180719]()
    impl<'a, W: std::io::Write, T: TxnT> Creditor<'a, W, T> {
  • edit in pijul/src/commands/credit.rs at line 72
    [17.180661]
    [17.180719]
    impl<'a, W: std::io::Write, T: TxnTExt> Creditor<'a, W, T> {
  • edit in pijul/src/commands/credit.rs at line 85
    [17.180972][17.180972:181047]()
    impl<'a, W: std::io::Write, T: TxnT> VertexBuffer for Creditor<'a, W, T> {
  • edit in pijul/src/commands/credit.rs at line 85
    [17.180972]
    [17.181047]
    impl<'a, W: std::io::Write, T: TxnTExt> VertexBuffer for Creditor<'a, W, T> {
  • edit in pijul/src/commands/credit.rs at line 95
    [17.181319][17.181319:181359]()
    use libpijul::pristine::Base32;
  • edit in pijul/src/commands/credit.rs at line 95
    [17.181319]
    [17.181359]
    use libpijul::Base32;
  • edit in pijul/src/commands/clone.rs at line 4
    [17.2941][17.182918:182977](),[17.182918][17.182918:182977]()
    use libpijul::pristine::MutTxnT;
    use libpijul::MutTxnTExt;
  • edit in pijul/src/commands/clone.rs at line 4
    [17.2941]
    [17.2942]
    use libpijul::{MutTxnT, MutTxnTExt};
  • edit in pijul/src/commands/channel.rs at line 4
    [17.187014]
    [11.0]
    use crate::repository::Repository;
  • edit in pijul/src/commands/channel.rs at line 6
    [11.31][17.3003:3080](),[17.3003][17.3003:3080]()
    use libpijul::pristine::{MutTxnT, TxnT};
    use crate::repository::Repository;
  • edit in pijul/src/commands/channel.rs at line 6
    [11.31]
    [17.3080]
    use libpijul::{MutTxnT, TxnT};
  • edit in pijul/src/commands/channel.rs at line 54
    [17.1311][17.1311:1391]()
    return Err(crate::Error::CannotDeleteCurrentChannel.into())
  • edit in pijul/src/commands/channel.rs at line 54
    [17.1311]
    [17.1391]
    return Err(crate::Error::CannotDeleteCurrentChannel.into());
  • edit in pijul/src/commands/channel.rs at line 67
    [17.1697][17.1697:1727]()
    }).switch()?;
  • edit in pijul/src/commands/channel.rs at line 67
    [17.1697]
    [17.1727]
    })
    .switch()?;
  • edit in pijul/src/commands/change.rs at line 6
    [17.189402][17.189402:189429]()
    use libpijul::pristine::*;
  • edit in pijul/src/commands/archive.rs at line 5
    [17.3169][17.3169:3252]()
    use libpijul::pristine::{Hash, Merkle, TxnT};
    use libpijul::{MutTxnTExt, TxnTExt};
  • edit in pijul/src/commands/archive.rs at line 5
    [17.3169]
    [17.3252]
    use libpijul::{Hash, Merkle, MutTxnTExt, TxnT, TxnTExt};
  • edit in pijul/src/commands/apply.rs at line 6
    [17.194383][17.194383:194442]()
    use libpijul::pristine::MutTxnT;
    use libpijul::MutTxnTExt;
  • edit in pijul/src/commands/apply.rs at line 6
    [17.194383]
    [17.3379]
    use libpijul::{MutTxnT, MutTxnTExt, TxnT};
  • edit in pijul/src/commands/apply.rs at line 26
    [17.194929][17.194929:194967]()
    use libpijul::pristine::TxnT;
  • edit in libpijul/src/working_copy/filesystem.rs at line 1
    [17.208900][17.208901:208956]()
    // org id c2D/NoY1VKCjNo0OezNVrmuG67Szl/Bfhi3G2Z7tcLU=
  • edit in libpijul/src/unrecord/working_copy.rs at line 34
    [17.227037][17.227037:227128]()
    let source = txn.find_block_end(&channel, txn.internal_pos(&e.from, change_id)?)?;
  • edit in libpijul/src/unrecord/working_copy.rs at line 34
    [17.227037]
    [17.227128]
    let source = find_block_end(txn, &channel, internal_pos(txn, &e.from, change_id)?)?;
  • edit in libpijul/src/unrecord/working_copy.rs at line 36
    [17.227214][17.227214:227286]()
    let dest = txn.internal_pos(&e.to.start_pos(), change_id)?;
  • edit in libpijul/src/unrecord/working_copy.rs at line 36
    [17.227214]
    [17.227286]
    let dest = internal_pos(txn, &e.to.start_pos(), change_id)?;
  • edit in libpijul/src/unrecord/working_copy.rs at line 57
    [17.227921][17.227921:228275]()
    let source_parent = txn
    .iter_adjacent(
    &channel,
    source,
    EdgeFlags::PARENT | EdgeFlags::FOLDER,
    EdgeFlags::all(),
    )
    .filter(|e| e.flag.contains(EdgeFlags::PARENT | EdgeFlags::FOLDER))
    .next()
    .unwrap()
    .dest;
  • edit in libpijul/src/unrecord/working_copy.rs at line 57
    [17.227921]
    [6.6]
    let source_parent = iter_adjacent(
    txn,
    &channel,
    source,
    EdgeFlags::PARENT | EdgeFlags::FOLDER,
    EdgeFlags::all(),
    )
    .filter(|e| e.flag.contains(EdgeFlags::PARENT | EdgeFlags::FOLDER))
    .next()
    .unwrap()
    .dest;
  • edit in libpijul/src/unrecord/working_copy.rs at line 114
    [17.229852][17.229852:230163]()
    for e in txn
    .iter_adjacent(
    channel,
    current,
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::FOLDER | EdgeFlags::PARENT | EdgeFlags::DELETED | EdgeFlags::BLOCK,
    )
    .filter(|e| e.flag.contains(EdgeFlags::FOLDER | EdgeFlags::PARENT))
  • edit in libpijul/src/unrecord/working_copy.rs at line 114
    [17.229852]
    [17.230163]
    for e in iter_adjacent(
    txn,
    channel,
    current,
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::FOLDER | EdgeFlags::PARENT | EdgeFlags::DELETED | EdgeFlags::BLOCK,
    )
    .filter(|e| e.flag.contains(EdgeFlags::FOLDER | EdgeFlags::PARENT))
  • edit in libpijul/src/unrecord/working_copy.rs at line 140
    [17.230687][17.230687:230736]()
    txn.find_block_end(channel, next.unwrap().1)
  • edit in libpijul/src/unrecord/working_copy.rs at line 140
    [17.230687]
    [17.230736]
    find_block_end(txn, channel, next.unwrap().1)
  • edit in libpijul/src/unrecord/working_copy.rs at line 143
    [17.230739][6.365:366]()
  • edit in libpijul/src/unrecord/working_copy.rs at line 151
    [17.231151][17.231151:231227]()
    let position = txn.internal_pos(&e.to.start_pos(), change_id)?;
  • edit in libpijul/src/unrecord/working_copy.rs at line 151
    [17.231151]
    [17.231227]
    let position = internal_pos(txn, &e.to.start_pos(), change_id)?;
  • edit in libpijul/src/unrecord/mod.rs at line 109
    [17.234766][17.234766:234838]()
    txn.internal_pos(&newvertex.inode, change_id)?,
  • edit in libpijul/src/unrecord/mod.rs at line 109
    [17.234766]
    [17.234838]
    internal_pos(txn, &newvertex.inode, change_id)?,
  • edit in libpijul/src/unrecord/mod.rs at line 172
    [17.236629][17.236629:236696]()
    let vertex = if let Ok(v) = txn.find_block(channel, pos) {
  • edit in libpijul/src/unrecord/mod.rs at line 172
    [17.236629]
    [17.236696]
    let vertex = if let Ok(v) = find_block(txn, channel, pos) {
  • edit in libpijul/src/unrecord/mod.rs at line 180
    [17.237011][17.237011:237079]()
    assert!(txn.find_block(channel, pos).is_err());
  • edit in libpijul/src/unrecord/mod.rs at line 180
    [17.237011]
    [17.237079]
    assert!(find_block(txn, channel, pos).is_err());
  • edit in libpijul/src/unrecord/mod.rs at line 187
    [17.237225][17.237225:237317]()
    for e in txn.iter_adjacent(channel, vertex, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/unrecord/mod.rs at line 187
    [17.237225]
    [17.237317]
    for e in iter_adjacent(txn, channel, vertex, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/unrecord/mod.rs at line 192
    [17.237523][17.237523:237596]()
    let up_v = txn.find_block_end(channel, e.dest)?;
  • edit in libpijul/src/unrecord/mod.rs at line 192
    [17.237523]
    [17.237596]
    let up_v = find_block_end(txn, channel, e.dest)?;
  • edit in libpijul/src/unrecord/mod.rs at line 196
    [17.237705][17.237705:237772]()
    let down_v = txn.find_block(channel, e.dest)?;
  • edit in libpijul/src/unrecord/mod.rs at line 196
    [17.237705]
    [17.237772]
    let down_v = find_block(txn, channel, e.dest)?;
  • edit in libpijul/src/unrecord/mod.rs at line 212
    [17.238249][17.238249:238312]()
    (txn.find_block_end(channel, e.dest)?, vertex)
  • edit in libpijul/src/unrecord/mod.rs at line 212
    [17.238249]
    [17.238312]
    (find_block_end(txn, channel, e.dest)?, vertex)
  • edit in libpijul/src/unrecord/mod.rs at line 214
    [17.238333][17.238333:238392]()
    (vertex, txn.find_block(channel, e.dest)?)
  • edit in libpijul/src/unrecord/mod.rs at line 214
    [17.238333]
    [17.238392]
    (vertex, find_block(txn, channel, e.dest)?)
  • edit in libpijul/src/unrecord/mod.rs at line 216
    [17.238407][17.238407:238504]()
    txn.del_graph_with_rev(channel, e.flag - EdgeFlags::PARENT, a, b, e.introduced_by)?;
  • edit in libpijul/src/unrecord/mod.rs at line 216
    [17.238407]
    [17.238504]
    del_graph_with_rev(
    txn,
    channel,
    e.flag - EdgeFlags::PARENT,
    a,
    b,
    e.introduced_by,
    )?;
  • edit in libpijul/src/unrecord/mod.rs at line 248
    [17.239152][17.239152:239191]()
    if txn.is_alive(channel, up) {
  • edit in libpijul/src/unrecord/mod.rs at line 248
    [17.239152]
    [17.239191]
    if is_alive(txn, channel, up) {
  • edit in libpijul/src/unrecord/mod.rs at line 263
    [17.239578][17.239578:239619]()
    for parent in txn.iter_adjacent(
  • edit in libpijul/src/unrecord/mod.rs at line 263
    [17.239578]
    [17.239619]
    for parent in iter_adjacent(
    txn,
  • edit in libpijul/src/unrecord/mod.rs at line 270
    [17.239752][17.239752:239868]()
    let parent = txn.find_block_end(channel, parent.dest)?;
    if !txn.is_alive(channel, parent) {
  • edit in libpijul/src/unrecord/mod.rs at line 270
    [17.239752]
    [17.239868]
    let parent = find_block_end(txn, channel, parent.dest)?;
    if !is_alive(txn, channel, parent) {
  • edit in libpijul/src/unrecord/mod.rs at line 304
    [17.240867][17.240867:240940]()
    let int = txn.internal(&edge.introduced_by, change_id).unwrap();
  • edit in libpijul/src/unrecord/mod.rs at line 304
    [17.240867]
    [17.240940]
    let int = internal(txn, &edge.introduced_by, change_id).unwrap();
  • edit in libpijul/src/unrecord/mod.rs at line 360
    [17.242478][17.242478:242744]()
    for e in txn
    .iter_adjacent(channel, a, EdgeFlags::empty(), EdgeFlags::all())
    .filter(|e| {
    !e.flag.contains(EdgeFlags::PARENT)
    && e.dest == b.start_pos()
    && !e.introduced_by.is_root()
    })
    {
  • edit in libpijul/src/unrecord/mod.rs at line 360
    [17.242478]
    [17.242744]
    for e in iter_adjacent(txn, channel, a, EdgeFlags::empty(), EdgeFlags::all()).filter(|e| {
    !e.flag.contains(EdgeFlags::PARENT) && e.dest == b.start_pos() && !e.introduced_by.is_root()
    }) {
  • edit in libpijul/src/unrecord/mod.rs at line 413
    [17.244357][17.244357:244476]()
    let to = txn.internal_pos(&edge.to.start_pos(), change_id)?;
    stack.push(txn.find_block(channel, to)?);
  • edit in libpijul/src/unrecord/mod.rs at line 413
    [17.244357]
    [17.244476]
    let to = internal_pos(txn, &edge.to.start_pos(), change_id)?;
    stack.push(find_block(txn, channel, to)?);
  • edit in libpijul/src/unrecord/mod.rs at line 421
    [17.244670][17.244670:244761]()
    for e in txn.iter_adjacent(channel, v, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/unrecord/mod.rs at line 421
    [17.244670]
    [17.244761]
    for e in iter_adjacent(txn, channel, v, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/unrecord/mod.rs at line 434
    [17.245298][17.245298:245367]()
    stack.push(txn.find_block_end(channel, e.dest)?)
  • edit in libpijul/src/unrecord/mod.rs at line 434
    [17.245298]
    [17.245367]
    stack.push(find_block_end(txn, channel, e.dest)?)
  • edit in libpijul/src/unrecord/mod.rs at line 436
    [17.245392][17.245392:245457]()
    stack.push(txn.find_block(channel, e.dest)?)
  • edit in libpijul/src/unrecord/mod.rs at line 436
    [17.245392]
    [17.245457]
    stack.push(find_block(txn, channel, e.dest)?)
  • edit in libpijul/src/unrecord/mod.rs at line 446
    [17.245741][17.245741:246288]()
    let u = txn.find_block_end(channel, e.dest)?;
    txn.del_graph_with_rev(channel, e.flag - EdgeFlags::PARENT, u, v, e.introduced_by)?;
    if txn
    .iter_adjacent(
    channel,
    u,
    EdgeFlags::empty(),
    EdgeFlags::all() - EdgeFlags::DELETED - EdgeFlags::PARENT,
    )
    .filter(|e| e.dest == v.start_pos())
    .next()
    .is_none()
  • edit in libpijul/src/unrecord/mod.rs at line 446
    [17.245741]
    [17.246288]
    let u = find_block_end(txn, channel, e.dest)?;
    del_graph_with_rev(
    txn,
    channel,
    e.flag - EdgeFlags::PARENT,
    u,
    v,
    e.introduced_by,
    )?;
    if iter_adjacent(
    txn,
    channel,
    u,
    EdgeFlags::empty(),
    EdgeFlags::all() - EdgeFlags::DELETED - EdgeFlags::PARENT,
    )
    .filter(|e| e.dest == v.start_pos())
    .next()
    .is_none()
  • edit in libpijul/src/unrecord/mod.rs at line 471
    [17.246511][17.246511:246584]()
    txn.put_graph_with_rev(channel, f, u, v, u.change)?;
  • edit in libpijul/src/unrecord/mod.rs at line 471
    [17.246511]
    [17.246584]
    put_graph_with_rev(txn, channel, f, u, v, u.change)?;
  • edit in libpijul/src/unrecord/mod.rs at line 474
    [17.246623][17.246623:246762]()
    let w = txn.find_block(channel, e.dest)?;
    txn.del_graph_with_rev(channel, e.flag, v, w, e.introduced_by)?;
  • edit in libpijul/src/unrecord/mod.rs at line 474
    [17.246623]
    [17.246762]
    let w = find_block(txn, channel, e.dest)?;
    del_graph_with_rev(txn, channel, e.flag, v, w, e.introduced_by)?;
  • edit in libpijul/src/unrecord/mod.rs at line 502
    [17.247531][17.247531:247607]()
    let intro = txn.internal(&e.introduced_by, change_id).unwrap();
  • edit in libpijul/src/unrecord/mod.rs at line 502
    [17.247531]
    [17.247607]
    let intro = internal(txn, &e.introduced_by, change_id).unwrap();
  • edit in libpijul/src/unrecord/mod.rs at line 514
    [17.247937][17.247937:248013]()
    let intro = txn.internal(&e.introduced_by, change_id).unwrap();
  • edit in libpijul/src/unrecord/mod.rs at line 514
    [17.247937]
    [17.248013]
    let intro = internal(txn, &e.introduced_by, change_id).unwrap();
  • edit in libpijul/src/unrecord/mod.rs at line 516
    [17.248081][17.248081:248246]()
    let to = txn.internal_pos(&e.to.start_pos(), change_id)?;
    let to = txn.find_block(channel, to)?;
    if !txn.is_alive(channel, to) {
  • edit in libpijul/src/unrecord/mod.rs at line 516
    [17.248081]
    [17.248246]
    let to = internal_pos(txn, &e.to.start_pos(), change_id)?;
    let to = find_block(txn, channel, to)?;
    if !is_alive(txn, channel, to) {
  • edit in libpijul/src/tests/unrecord.rs at line 46
    [17.250161][17.250161:250255]()
    txn.debug_to_file(&channel, "debug_un")?;
    txn.debug_to_file(&channel2, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 46
    [17.250161]
    [17.250255]
    debug_to_file(&txn, &channel, "debug_un")?;
    debug_to_file(&txn, &channel2, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 93
    [17.251507][17.251507:251601]()
    txn.debug_to_file(&channel, "debug_un")?;
    txn.debug_to_file(&channel2, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 93
    [17.251507]
    [17.251601]
    debug_to_file(&txn, &channel, "debug_un")?;
    debug_to_file(&txn, &channel2, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 121
    [17.252346][17.252346:252392]()
    txn.debug_to_file(&channel, "debug_un")?;
  • edit in libpijul/src/tests/unrecord.rs at line 121
    [17.252346]
    [17.252392]
    debug_to_file(&txn, &channel, "debug_un")?;
  • edit in libpijul/src/tests/unrecord.rs at line 125
    [17.252500][17.252500:252547]()
    txn.debug_to_file(&channel, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 125
    [17.252500]
    [17.252547]
    debug_to_file(&txn, &channel, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 221
    [17.255738][17.255738:255784]()
    txn.debug_to_file(&channel, "debug_un")?;
  • edit in libpijul/src/tests/unrecord.rs at line 221
    [17.255738]
    [17.255784]
    debug_to_file(&txn, &channel, "debug_un")?;
  • edit in libpijul/src/tests/unrecord.rs at line 225
    [17.255857][17.255857:255904]()
    txn.debug_to_file(&channel, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 225
    [17.255857]
    [17.255904]
    debug_to_file(&txn, &channel, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 271
    [17.257293][17.257293:257338]()
    txn.debug_to_file(&channel, "debug_a")?;
  • edit in libpijul/src/tests/unrecord.rs at line 271
    [17.257293]
    [17.257338]
    debug_to_file(&txn, &channel, "debug_a")?;
  • edit in libpijul/src/tests/unrecord.rs at line 280
    [17.257542][17.257542:257589]()
    txn2.debug_to_file(&channel2, "debug_b")?;
  • edit in libpijul/src/tests/unrecord.rs at line 280
    [17.257542]
    [17.257589]
    debug_to_file(&txn2, &channel2, "debug_b")?;
  • edit in libpijul/src/tests/unrecord.rs at line 285
    [17.257671][17.257671:257717]()
    txn.debug_to_file(&channel, "debug_un")?;
  • edit in libpijul/src/tests/unrecord.rs at line 285
    [17.257671]
    [17.257717]
    debug_to_file(&txn, &channel, "debug_un")?;
  • edit in libpijul/src/tests/unrecord.rs at line 296
    [17.257984][17.257984:258031]()
    txn.debug_to_file(&channel, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 296
    [17.257984]
    [17.258031]
    debug_to_file(&txn, &channel, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 314
    [17.258535][17.258535:258593]()
    let (alive_, reachable_) = txn.check_alive(&channel);
  • edit in libpijul/src/tests/unrecord.rs at line 314
    [17.258535]
    [17.258593]
    let (alive_, reachable_) = check_alive(&txn, &channel);
  • edit in libpijul/src/tests/unrecord.rs at line 326
    [17.258869][17.258869:258918]()
    txn2.debug_to_file(&channel2, "debug_un3")?;
  • edit in libpijul/src/tests/unrecord.rs at line 326
    [17.258869]
    [17.258918]
    debug_to_file(&txn2, &channel2, "debug_un3")?;
  • edit in libpijul/src/tests/unrecord.rs at line 330
    [17.259033][17.259033:259082]()
    txn2.debug_to_file(&channel2, "debug_un4")?;
  • edit in libpijul/src/tests/unrecord.rs at line 330
    [17.259033]
    [17.259082]
    debug_to_file(&txn2, &channel2, "debug_un4")?;
  • edit in libpijul/src/tests/unrecord.rs at line 372
    [17.260384][17.260384:260430]()
    txn.debug_to_file(&channel, "debug_un")?;
  • edit in libpijul/src/tests/unrecord.rs at line 372
    [17.260384]
    [17.260430]
    debug_to_file(&txn, &channel, "debug_un")?;
  • edit in libpijul/src/tests/unrecord.rs at line 375
    [17.260502][17.260502:260549]()
    txn.debug_to_file(&channel, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 375
    [17.260502]
    [17.260549]
    debug_to_file(&txn, &channel, "debug_un2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 399
    [17.261132][17.261132:261190]()
    let (alive_, reachable_) = txn.check_alive(&channel);
  • edit in libpijul/src/tests/unrecord.rs at line 399
    [17.261132]
    [17.261190]
    let (alive_, reachable_) = check_alive(&txn, &channel);
  • edit in libpijul/src/tests/unrecord.rs at line 424
    [17.261773][17.261773:261797]()
    txn.debug_inodes();
  • edit in libpijul/src/tests/unrecord.rs at line 424
    [17.261773]
    [17.261797]
    debug_inodes(&txn);
  • edit in libpijul/src/tests/unrecord.rs at line 435
    [17.262110][17.262110:262134]()
    txn.debug_inodes();
  • edit in libpijul/src/tests/unrecord.rs at line 435
    [17.262110]
    [17.262134]
    debug_inodes(&txn);
  • edit in libpijul/src/tests/unrecord.rs at line 448
    [17.262468][17.262468:262492]()
    txn.debug_inodes();
  • edit in libpijul/src/tests/unrecord.rs at line 448
    [17.262468]
    [17.262492]
    debug_inodes(&txn);
  • edit in libpijul/src/tests/unrecord.rs at line 465
    [17.262968][17.262968:263035]()
    txn.debug_inodes();
    txn.debug_to_file(&channel, "debug")?;
  • edit in libpijul/src/tests/unrecord.rs at line 465
    [17.262968]
    [17.263035]
    debug_inodes(&txn);
    debug_to_file(&txn, &channel, "debug")?;
  • edit in libpijul/src/tests/unrecord.rs at line 473
    [17.263190][17.263190:263258]()
    txn.debug_inodes();
    txn.debug_to_file(&channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 473
    [17.263190]
    [17.263258]
    debug_inodes(&txn);
    debug_to_file(&txn, &channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 476
    [17.263329][17.263329:263373]()
    txn.debug_to_file(&channel, "debug3")?;
  • edit in libpijul/src/tests/unrecord.rs at line 476
    [17.263329]
    [17.263373]
    debug_to_file(&txn, &channel, "debug3")?;
  • edit in libpijul/src/tests/unrecord.rs at line 511
    [17.264346][17.264346:264389]()
    txn.debug_to_file(&channel, "debug")?;
  • edit in libpijul/src/tests/unrecord.rs at line 511
    [17.264346]
    [17.264389]
    debug_to_file(&txn, &channel, "debug")?;
  • edit in libpijul/src/tests/unrecord.rs at line 515
    [17.264518][17.264518:264562]()
    txn.debug_to_file(&channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 515
    [17.264518]
    [17.264562]
    debug_to_file(&txn, &channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 532
    [17.265003][17.265003:265047]()
    txn.debug_to_file(&channel, "debug3")?;
  • edit in libpijul/src/tests/unrecord.rs at line 532
    [17.265003]
    [17.265047]
    debug_to_file(&txn, &channel, "debug3")?;
  • edit in libpijul/src/tests/unrecord.rs at line 580
    [17.266430][17.266430:266473]()
    txn.debug_to_file(&channel, "debug")?;
  • edit in libpijul/src/tests/unrecord.rs at line 580
    [17.266430]
    [17.266473]
    debug_to_file(&txn, &channel, "debug")?;
  • edit in libpijul/src/tests/unrecord.rs at line 610
    [17.267309][17.267309:267353]()
    txn.debug_to_file(&channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 610
    [17.267309]
    [17.267353]
    debug_to_file(&txn, &channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 613
    [17.267424][17.267424:267468]()
    txn.debug_to_file(&channel, "debug3")?;
  • edit in libpijul/src/tests/unrecord.rs at line 613
    [17.267424]
    [17.267468]
    debug_to_file(&txn, &channel, "debug3")?;
  • edit in libpijul/src/tests/unrecord.rs at line 712
    [17.269955][17.269955:269998]()
    txn.debug_to_file(&channel, "debug")?;
  • edit in libpijul/src/tests/unrecord.rs at line 712
    [17.269955]
    [17.269998]
    debug_to_file(&txn, &channel, "debug")?;
  • edit in libpijul/src/tests/unrecord.rs at line 730
    [17.270484][17.270484:270528]()
    txn.debug_to_file(&channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 730
    [17.270484]
    [17.270528]
    debug_to_file(&txn, &channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 776
    [17.271901][17.271901:271945]()
    txn.debug_to_file(&channel, "debug0")?;
  • edit in libpijul/src/tests/unrecord.rs at line 776
    [17.271901]
    [17.271945]
    debug_to_file(&txn, &channel, "debug0")?;
  • edit in libpijul/src/tests/unrecord.rs at line 790
    [17.272286][17.272286:272377]()
    txn.debug_to_file(&channel, "debug1a")?;
    txn.debug_to_file(&channel2, "debug1b")?;
  • edit in libpijul/src/tests/unrecord.rs at line 790
    [17.272286]
    [17.272377]
    debug_to_file(&txn, &channel, "debug1a")?;
    debug_to_file(&txn, &channel2, "debug1b")?;
  • edit in libpijul/src/tests/unrecord.rs at line 794
    [17.272474][17.272474:272518]()
    txn.debug_to_file(&channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 794
    [17.272474]
    [17.272518]
    debug_to_file(&txn, &channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 842
    [17.273869][17.273869:273913]()
    txn.debug_to_file(&channel, "debug0")?;
  • edit in libpijul/src/tests/unrecord.rs at line 842
    [17.273869]
    [17.273913]
    debug_to_file(&txn, &channel, "debug0")?;
  • edit in libpijul/src/tests/unrecord.rs at line 856
    [17.274282][17.274282:274373]()
    txn.debug_to_file(&channel, "debug1a")?;
    txn.debug_to_file(&channel2, "debug1b")?;
  • edit in libpijul/src/tests/unrecord.rs at line 856
    [17.274282]
    [17.274373]
    debug_to_file(&txn, &channel, "debug1a")?;
    debug_to_file(&txn, &channel2, "debug1b")?;
  • edit in libpijul/src/tests/unrecord.rs at line 860
    [17.274470][17.274470:274514]()
    txn.debug_to_file(&channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 860
    [17.274470]
    [17.274514]
    debug_to_file(&txn, &channel, "debug2")?;
  • edit in libpijul/src/tests/unrecord.rs at line 896
    [17.275544][17.275544:275607]()
    txn.debug_to_file(&channel2, format!("debug_{}", i))?;
  • edit in libpijul/src/tests/unrecord.rs at line 896
    [17.275544]
    [17.275607]
    debug_to_file(&txn, &channel2, format!("debug_{}", i))?;
  • edit in libpijul/src/tests/unrecord.rs at line 900
    [17.275699][17.275699:275749]()
    txn.debug_to_file(&channel2, "debug_final")?;
  • edit in libpijul/src/tests/unrecord.rs at line 900
    [17.275699]
    [17.275749]
    debug_to_file(&txn, &channel2, "debug_final")?;
  • edit in libpijul/src/tests/unrecord.rs at line 919
    [6.382][6.382:383]()
  • edit in libpijul/src/tests/rm_file.rs at line 31
    [17.277028][17.277028:277090]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/rm_file.rs at line 31
    [17.277028]
    [17.277090]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/rm_file.rs at line 44
    [17.277432][17.277432:277488]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/rm_file.rs at line 44
    [17.277432]
    [17.277488]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/rm_file.rs at line 50
    [17.277712][17.277712:277768]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/rm_file.rs at line 50
    [17.277712]
    [17.277768]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/rm_file.rs at line 54
    [17.277882][17.277882:277944]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/rm_file.rs at line 54
    [17.277882]
    [17.277944]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/performance.rs at line 10
    [17.278413][17.278413:278444]()
    let contents = b"XXXXX\n";
  • edit in libpijul/src/tests/performance.rs at line 10
    [17.278413]
    [17.278444]
    let contents = b"TxnTX\n";
  • edit in libpijul/src/tests/performance.rs at line 22
    [17.278868][17.278868:278919]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 22
    [17.278868]
    [17.278919]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 37
    [17.279333][17.279333:279403]()
    txn.debug_to_file(&channel, &format!("debug{}", i)).unwrap();
  • edit in libpijul/src/tests/performance.rs at line 37
    [17.279333]
    [17.279403]
    debug_to_file(&txn, &channel, &format!("debug{}", i)).unwrap();
  • edit in libpijul/src/tests/performance.rs at line 50
    [17.279700][17.279700:279757]()
    txn.debug_to_file(&channel, "debug_final").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 50
    [17.279700]
    [17.279757]
    debug_to_file(&txn, &channel, "debug_final").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 71
    [17.280248][17.280248:280286]()
    let contents = b"XXXXX\nZZZZZ\n";
  • edit in libpijul/src/tests/performance.rs at line 71
    [17.280248]
    [17.280286]
    let contents = b"TxnTX\nZZZZZ\n";
  • edit in libpijul/src/tests/performance.rs at line 83
    [17.280710][17.280710:280761]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 83
    [17.280710]
    [17.280761]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 98
    [17.281174][17.281174:281244]()
    txn.debug_to_file(&channel, &format!("debug{}", i)).unwrap();
  • edit in libpijul/src/tests/performance.rs at line 98
    [17.281174]
    [17.281244]
    debug_to_file(&txn, &channel, &format!("debug{}", i)).unwrap();
  • edit in libpijul/src/tests/performance.rs at line 105
    [17.281405][17.281405:281453]()
    w.write_all(b"XXXXX\nYYYYY\nZZZZZ\n")?;
  • edit in libpijul/src/tests/performance.rs at line 105
    [17.281405]
    [17.281453]
    w.write_all(b"TxnTX\nYYYYY\nZZZZZ\n")?;
  • edit in libpijul/src/tests/performance.rs at line 113
    [17.281651][17.281651:281708]()
    txn.debug_to_file(&channel2, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 113
    [17.281651]
    [17.281708]
    debug_to_file(&txn, &channel2, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 126
    [17.282009][17.282009:282067]()
    txn.debug_to_file(&channel, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 126
    [17.282009]
    [17.282067]
    debug_to_file(&txn, &channel, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 129
    [17.282145][17.282145:282202]()
    txn.debug_to_file(&channel, "debug_alice").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 129
    [17.282145]
    [17.282202]
    debug_to_file(&txn, &channel, "debug_alice").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 132
    [17.282281][17.282281:282337]()
    txn.debug_to_file(&channel2, "debug_bob").unwrap();
  • edit in libpijul/src/tests/performance.rs at line 132
    [17.282281]
    [17.282337]
    debug_to_file(&txn, &channel2, "debug_bob").unwrap();
  • edit in libpijul/src/tests/patch.rs at line 88
    [17.285162][17.285162:285200]()
    txn.debug_to_file(&branch, "debug")?;
  • edit in libpijul/src/tests/patch.rs at line 88
    [17.285162]
    [17.285200]
    debug_to_file(&debug_to_file((debug_to_file((txn, &branch, "debug")?;
  • edit in libpijul/src/tests/partial.rs at line 33
    [17.286396][17.286396:286451]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/partial.rs at line 33
    [17.286396]
    [17.286451]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 20
    [17.292099][17.292099:292141]()
    let bob = b"a\nb\nc\nxyz\nd\ne\nf\n";
  • edit in libpijul/src/tests/missing_context.rs at line 20
    [17.292099]
    [17.292141]
    let bob = b"a\nb\nc\nx\nz\nd\ne\nf\n";
    let bob2 = b"a\nb\nc\nx\ny\nz\nd\ne\nf\n";
  • edit in libpijul/src/tests/missing_context.rs at line 65
    [17.293492]
    [17.293492]
    repo_bob
    .write_file("file", |w| {
    w.write_all(bob2).unwrap();
    Ok(())
    })
    .unwrap();
    let bob_h2 = record_all(&mut repo_bob, &changes, &mut txn_bob, &mut channel_bob, "").unwrap();
    debug_to_file(&txn_bob, &channel_bob, "bob0")?;
  • edit in libpijul/src/tests/missing_context.rs at line 90
    [17.293888][17.293888:293944]()
    txn_alice.debug_to_file(&channel_alice, "debug0")?;
  • edit in libpijul/src/tests/missing_context.rs at line 90
    [17.293888]
    [17.293944]
    debug_to_file(&txn_alice, &channel_alice, "debug0")?;
  • edit in libpijul/src/tests/missing_context.rs at line 95
    [17.294095]
    [17.294095]
    apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h2)?;
    debug!("done applying Bob's change");
  • edit in libpijul/src/tests/missing_context.rs at line 105
    [17.294266][17.294266:294328]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/missing_context.rs at line 105
    [17.294266]
    [17.294328]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
    crate::unrecord::unrecord(&mut txn_alice, &mut channel_alice, &changes, &bob_h2)?;
    crate::unrecord::unrecord(&mut txn_alice, &mut channel_alice, &changes, &bob_h)?;
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1_unrec")?;
    apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h)?;
    apply::apply_change(&changes, &mut txn_alice, &mut channel_alice, bob_h2)?;
  • edit in libpijul/src/tests/missing_context.rs at line 121
    [17.294504][17.294504:294603]()
    &"a\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nxyz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\nf\n"
  • edit in libpijul/src/tests/missing_context.rs at line 121
    [17.294504]
    [17.294603]
    &"a\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nx\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\ny\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\nf\n"
  • edit in libpijul/src/tests/missing_context.rs at line 128
    [17.294725][17.294725:294822]()
    Ok(&">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nxyz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"[..])
  • edit in libpijul/src/tests/missing_context.rs at line 128
    [17.294725]
    [17.294822]
    Ok(&">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nx\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\ny\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"[..])
  • edit in libpijul/src/tests/missing_context.rs at line 148
    [17.295326][17.295326:295388]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/missing_context.rs at line 148
    [17.295326]
    [17.295388]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/missing_context.rs at line 153
    [17.295496][17.295496:295552]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/missing_context.rs at line 153
    [17.295496]
    [17.295552]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/missing_context.rs at line 155
    [17.295637][17.295637:295693]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/missing_context.rs at line 155
    [17.295637]
    [17.295693]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/missing_context.rs at line 165
    [17.295902][17.295902:295958]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/missing_context.rs at line 165
    [17.295902]
    [17.295958]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
    crate::unrecord::unrecord(&mut txn_bob, &mut channel_bob, &changes, &alice_h)?;
    debug_to_file(&txn_alice, &channel_alice, "debug_bob2_unrec")?;
    apply::apply_change(&changes, &mut txn_bob, &mut channel_bob, alice_h)?;
  • edit in libpijul/src/tests/missing_context.rs at line 178
    [17.296131][17.296131:296230]()
    &"a\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nxyz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\nf\n"
  • edit in libpijul/src/tests/missing_context.rs at line 178
    [17.296131]
    [17.296230]
    &"a\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nx\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\ny\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\nf\n"
  • edit in libpijul/src/tests/missing_context.rs at line 185
    [17.296352][17.296352:296449]()
    Ok(&">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nxyz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"[..])
  • edit in libpijul/src/tests/missing_context.rs at line 185
    [17.296352]
    [17.296449]
    Ok(&">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nx\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\ny\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\nz\n<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n"[..])
  • edit in libpijul/src/tests/missing_context.rs at line 225
    [17.297627][17.297627:297713]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_init")
    .unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 225
    [17.297627]
    [17.297713]
    debug_to_file(&txn_alice, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 254
    [17.298668][17.298668:298732]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 254
    [17.298668]
    [17.298732]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 269
    [17.299050][17.299050:299138]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice0")
    .unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 269
    [17.299050]
    [17.299138]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 282
    [17.299465][17.299465:299553]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice1")
    .unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 282
    [17.299465]
    [17.299553]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 309
    [17.300311][17.300311:300399]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice2")
    .unwrap();
  • edit in libpijul/src/tests/missing_context.rs at line 309
    [17.300311]
    [17.300399]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 42
    [17.306701][17.306701:306763]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 42
    [17.306701]
    [17.306763]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 55
    [17.307105][17.307105:307161]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 55
    [17.307105]
    [17.307161]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 69
    [17.307491][17.307491:307553]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 69
    [17.307491]
    [17.307553]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 76
    [17.307809][17.307809:307865]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 76
    [17.307809]
    [17.307865]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 80
    [17.307979][17.307979:308041]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 80
    [17.307979]
    [17.308041]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 96
    [17.308453][17.308453:308509]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 96
    [17.308453]
    [17.308509]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 164
    [17.310248][17.310248:310287]()
    txn_bob.debug_tree("debug_tree")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 164
    [17.310248]
    [17.310287]
    debug_tree(&txn_bob, "debug_tree")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 192
    [17.311242][17.311242:311283]()
    txn_alice.debug_tree("debug_tree")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 192
    [17.311242]
    [17.311283]
    debug_tree(&txn_alice, "debug_tree")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 200
    [17.311427][17.311427:311489]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 200
    [17.311427]
    [17.311489]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 213
    [17.311831][17.311831:311887]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 213
    [17.311831]
    [17.311887]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 228
    [17.312226][17.312226:312288]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 228
    [17.312226]
    [17.312288]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 235
    [17.312558][17.312558:312614]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 235
    [17.312558]
    [17.312614]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 239
    [17.312728][17.312728:312790]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 239
    [17.312728]
    [17.312790]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 251
    [17.313073][17.313073:313129]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 251
    [17.313073]
    [17.313129]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 303
    [17.314596][17.314596:314652]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 303
    [17.314596]
    [17.314652]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 334
    [17.315750][17.315750:315791]()
    txn_alice.debug_tree("debug_tree")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 334
    [17.315750]
    [17.315791]
    debug_tree(&txn_alice, "debug_tree")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 342
    [17.315935][17.315935:315997]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 342
    [17.315935]
    [17.315997]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 355
    [17.316369][17.316369:316425]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 355
    [17.316369]
    [17.316425]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 360
    [17.316657][17.316657:316713]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 360
    [17.316657]
    [17.316713]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 375
    [17.317052][17.317052:317114]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 375
    [17.317052]
    [17.317114]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 401
    [17.317945][17.317945:318013]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 401
    [17.317945]
    [17.318013]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 413
    [17.318359][17.318359:318427]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 413
    [17.318359]
    [17.318427]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 420
    [17.318746][17.318746:318808]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 420
    [17.318746]
    [17.318808]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 440
    [17.319291][17.319291:319353]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 440
    [17.319291]
    [17.319353]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 445
    [17.319544][17.319544:319600]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 445
    [17.319544]
    [17.319600]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 459
    [17.320013][17.320013:320069]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 459
    [17.320013]
    [17.320069]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 490
    [17.321008][17.321008:321070]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 490
    [17.321008]
    [17.321070]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 503
    [17.321412][17.321412:321468]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 503
    [17.321412]
    [17.321468]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 515
    [17.321691][17.321691:321753]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 515
    [17.321691]
    [17.321753]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 523
    [17.321977][17.321977:322033]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 523
    [17.321977]
    [17.322033]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 527
    [17.322147][17.322147:322209]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 527
    [17.322147]
    [17.322209]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 537
    [17.322402][17.322402:322464]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 537
    [17.322402]
    [17.322464]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 558
    [17.323010][17.323010:323072]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 558
    [17.323010]
    [17.323072]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 562
    [17.323184][17.323184:323240]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 562
    [17.323184]
    [17.323240]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 574
    [17.323601][17.323601:323657]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 574
    [17.323601]
    [17.323657]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 615
    [17.324874][17.324874:324936]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 615
    [17.324874]
    [17.324936]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 628
    [17.325278][17.325278:325334]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 628
    [17.325278]
    [17.325334]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 640
    [17.325557][17.325557:325619]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 640
    [17.325557]
    [17.325619]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 650
    [17.325950][17.325950:326006]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 650
    [17.325950]
    [17.326006]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 654
    [17.326120][17.326120:326182]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 654
    [17.326120]
    [17.326182]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 665
    [17.326376][17.326376:326438]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 665
    [17.326376]
    [17.326438]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 683
    [17.326969][17.326969:327031]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice4")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 683
    [17.326969]
    [17.327031]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice4")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 688
    [17.327194][17.327194:327250]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 688
    [17.327194]
    [17.327250]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 700
    [17.327611][17.327611:327667]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 700
    [17.327611]
    [17.327667]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 743
    [17.328933][17.328933:328995]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 743
    [17.328933]
    [17.328995]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 756
    [17.329337][17.329337:329393]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 756
    [17.329337]
    [17.329393]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 768
    [17.329616][17.329616:329678]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 768
    [17.329616]
    [17.329678]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 778
    [17.329986][17.329986:330042]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 778
    [17.329986]
    [17.330042]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 782
    [17.330156][17.330156:330218]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 782
    [17.330156]
    [17.330218]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 792
    [17.330411][17.330411:330473]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 792
    [17.330411]
    [17.330473]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 810
    [17.331018][17.331018:331080]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice4")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 810
    [17.331018]
    [17.331080]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice4")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 815
    [17.331243][17.331243:331299]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 815
    [17.331243]
    [17.331299]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 828
    [17.331661][17.331661:331717]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 828
    [17.331661]
    [17.331717]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 876
    [17.333257][17.333257:333319]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 876
    [17.333257]
    [17.333319]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 889
    [17.333672][17.333672:333728]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 889
    [17.333672]
    [17.333728]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 901
    [17.334100][17.334100:334168]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 901
    [17.334100]
    [17.334168]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 916
    [17.334486][17.334486:334548]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 916
    [17.334486]
    [17.334548]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 924
    [17.334772][17.334772:334828]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 924
    [17.334772]
    [17.334828]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 939
    [17.335128][17.335128:335196]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 939
    [17.335128]
    [17.335196]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 944
    [17.335408][17.335408:335470]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 944
    [17.335408]
    [17.335470]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 954
    [17.335679][17.335679:335741]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 954
    [17.335679]
    [17.335741]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 981
    [17.336549][17.336549:336611]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 981
    [17.336549]
    [17.336611]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 986
    [17.336787][17.336787:336843]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 986
    [17.336787]
    [17.336843]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 995
    [17.337024][17.337024:337080]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 995
    [17.337024]
    [17.337080]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1003
    [17.337359][17.337359:337415]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1003
    [17.337359]
    [17.337415]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1018
    [17.337794][17.337794:337862]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1018
    [17.337794]
    [17.337862]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1021
    [17.337993][17.337993:338061]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1021
    [17.337993]
    [17.338061]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1042
    [17.338627][17.338627:338695]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie4")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1042
    [17.338627]
    [17.338695]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie4")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1087
    [17.340070][17.340070:340132]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1087
    [17.340070]
    [17.340132]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1098
    [17.340386][17.340386:340448]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1098
    [17.340386]
    [17.340448]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1111
    [17.340790][17.340790:340846]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1111
    [17.340790]
    [17.340846]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1117
    [17.341097][17.341097:341153]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1117
    [17.341097]
    [17.341153]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1136
    [17.341724][17.341724:341780]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1136
    [17.341724]
    [17.341780]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1161
    [17.342516][17.342516:342578]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1161
    [17.342516]
    [17.342578]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1178
    [17.343185][17.343185:343253]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1178
    [17.343185]
    [17.343253]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie0")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1193
    [17.343617][17.343617:343685]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1193
    [17.343617]
    [17.343685]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie1")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1197
    [17.343784][17.343784:343852]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1197
    [17.343784]
    [17.343852]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie2")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1205
    [17.343996][17.343996:344064]()
    txn_charlie.debug_to_file(&channel_charlie, "debug_charlie3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1205
    [17.343996]
    [17.344064]
    debug_to_file(&txn_charlie, &channel_charlie, "debug_charlie3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1225
    [17.344734][17.344734:344796]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1225
    [17.344734]
    [17.344796]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1242
    [17.345303][17.345303:345359]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1242
    [17.345303]
    [17.345359]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3")?;
  • edit in libpijul/src/tests/file_conflicts.rs at line 1306
    [17.347196][17.347196:347284]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice1")
    .unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1306
    [17.347196]
    [17.347284]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1311
    [17.347449][17.347449:347513]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1311
    [17.347449]
    [17.347513]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1318
    [17.347680][17.347680:347744]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1318
    [17.347680]
    [17.347744]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1340
    [17.348464][17.348464:348528]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1340
    [17.348464]
    [17.348528]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1357
    [17.348950][17.348950:349038]()
    .unwrap();
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice2")
  • edit in libpijul/src/tests/file_conflicts.rs at line 1358
    [17.349057]
    [17.349057]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1384
    [17.349775][17.349775:349863]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice3")
    .unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1384
    [17.349775]
    [17.349863]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1441
    [17.351489][17.351489:351577]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice1")
    .unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1441
    [17.351489]
    [17.351577]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1450
    [17.351848][17.351848:351912]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1450
    [17.351848]
    [17.351912]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1453
    [17.352051][17.352051:352115]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1453
    [17.352051]
    [17.352115]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1459
    [17.352268][17.352268:352356]()
    .unwrap();
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice2")
  • edit in libpijul/src/tests/file_conflicts.rs at line 1460
    [17.352375]
    [17.352375]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1464
    [17.352480][17.352480:352568]()
    .unwrap();
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice3")
  • edit in libpijul/src/tests/file_conflicts.rs at line 1465
    [17.352587]
    [17.352587]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1467
    [17.352588][17.352588:352656]()
    let (alive, reachable) = txn_alice.check_alive(&channel_alice);
  • edit in libpijul/src/tests/file_conflicts.rs at line 1467
    [17.352588]
    [17.352656]
    let (alive, reachable) = check_alive(&txn_alice, &channel_alice);
  • edit in libpijul/src/tests/file_conflicts.rs at line 1476
    [17.352920][17.352920:353008]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice4")
    .unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1476
    [17.352920]
    [17.353008]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice4").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1538
    [17.354798][17.354798:354886]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice1")
    .unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1538
    [17.354798]
    [17.354886]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1543
    [17.355049][17.355049:355113]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1543
    [17.355049]
    [17.355113]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1550
    [17.355280][17.355280:355344]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1550
    [17.355280]
    [17.355344]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1566
    [17.355858][17.355858:355922]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1566
    [17.355858]
    [17.355922]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1584
    [17.356363][17.356363:356451]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice2")
    .unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1584
    [17.356363]
    [17.356451]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1610
    [17.357162][17.357162:357250]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_alice3")
    .unwrap();
  • edit in libpijul/src/tests/file_conflicts.rs at line 1610
    [17.357162]
    [17.357250]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 21
    [17.358102][17.358102:358164]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 21
    [17.358102]
    [17.358164]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 47
    [17.358871][17.358871:358993]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 47
    [17.358871]
    [17.358993]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 50
    [17.359079][17.359079:359139]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 50
    [17.359079]
    [17.359139]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 58
    [17.359364][17.359364:359428]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 58
    [17.359364]
    [17.359428]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 99
    [17.360591][17.360591:360655]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 99
    [17.360591]
    [17.360655]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 117
    [17.361279][17.361279:361343]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 117
    [17.361279]
    [17.361343]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 129
    [17.361620][17.361620:361680]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 129
    [17.361620]
    [17.361680]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 144
    [17.362051][17.362051:362111]()
    txn.debug_to_file(&channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 144
    [17.362051]
    [17.362111]
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 150
    [17.362334][17.362334:362394]()
    txn.debug_to_file(&channel_bob, "debug_bob3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 150
    [17.362334]
    [17.362394]
    debug_to_file(&txn, &channel_bob, "debug_bob3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 183
    [17.363390][17.363390:363452]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 183
    [17.363390]
    [17.363452]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 222
    [17.364561][17.364561:364683]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 222
    [17.364561]
    [17.364683]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 225
    [17.364769][17.364769:364829]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 225
    [17.364769]
    [17.364829]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 239
    [17.365113][17.365113:365190]()
    txn.debug_to_file(&channel_charlie, "debug_charlie0")
    .unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 239
    [17.365113]
    [17.365190]
    debug_to_file(&txn, &channel_charlie, "debug_charlie0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 247
    [17.365415][17.365415:365479]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 247
    [17.365415]
    [17.365479]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 286
    [17.366623][17.366623:366687]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 286
    [17.366623]
    [17.366687]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 300
    [17.367183][17.367183:367247]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 300
    [17.367183]
    [17.367247]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 313
    [17.367607][17.367607:367667]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 313
    [17.367607]
    [17.367667]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 369
    [17.369361][17.369361:369438]()
    txn.debug_to_file(&channel_charlie, "debug_charlie1")
    .unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 369
    [17.369361]
    [17.369438]
    debug_to_file(&txn, &channel_charlie, "debug_charlie1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 411
    [17.370710][17.370710:370772]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 411
    [17.370710]
    [17.370772]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 432
    [17.371322][17.371322:371444]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 432
    [17.371322]
    [17.371444]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 435
    [17.371530][17.371530:371590]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 435
    [17.371530]
    [17.371590]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 443
    [17.371815][17.371815:371879]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 443
    [17.371815]
    [17.371879]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 455
    [17.372152][17.372152:372216]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 455
    [17.372152]
    [17.372216]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 482
    [17.373139][17.373139:373203]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 482
    [17.373139]
    [17.373203]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 494
    [17.373480][17.373480:373540]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 494
    [17.373480]
    [17.373540]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 507
    [17.373859][17.373859:373919]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 507
    [17.373859]
    [17.373919]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 531
    [17.374669][17.374669:374731]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 531
    [17.374669]
    [17.374731]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 551
    [17.375213][17.375213:375335]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 551
    [17.375213]
    [17.375335]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 554
    [17.375417][17.375417:375477]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 554
    [17.375417]
    [17.375477]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 562
    [17.375690][17.375690:375754]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 562
    [17.375690]
    [17.375754]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 605
    [17.376977][17.376977:377041]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 605
    [17.376977]
    [17.377041]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 619
    [17.377440][17.377440:377504]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 619
    [17.377440]
    [17.377504]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 660
    [17.378867][17.378867:378929]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 660
    [17.378867]
    [17.378929]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 680
    [17.379411][17.379411:379533]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 680
    [17.379411]
    [17.379533]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 683
    [17.379615][17.379615:379675]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 683
    [17.379615]
    [17.379675]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 691
    [17.379888][17.379888:379952]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 691
    [17.379888]
    [17.379952]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 721
    [17.380818][17.380818:380882]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 721
    [17.380818]
    [17.380882]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 736
    [17.381282][17.381282:381346]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 736
    [17.381282]
    [17.381346]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 780
    [17.382757][17.382757:382819]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 780
    [17.382757]
    [17.382819]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 859
    [17.385097][17.385097:385161]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 859
    [17.385097]
    [17.385161]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 874
    [17.385565][17.385565:385629]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 874
    [17.385565]
    [17.385629]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 890
    [17.386081][17.386081:386140]()
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 890
    [17.386081]
    [17.386140]
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 919
    [17.387079][17.387079:387141]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 919
    [17.387079]
    [17.387141]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 944
    [17.387847][17.387847:387969]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 944
    [17.387847]
    [17.387969]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 947
    [17.388055][17.388055:388115]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 947
    [17.388055]
    [17.388115]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 955
    [17.388340][17.388340:388404]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 955
    [17.388340]
    [17.388404]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 990
    [17.389412][17.389412:389476]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 990
    [17.389412]
    [17.389476]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1005
    [17.389959][17.389959:390023]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1005
    [17.389959]
    [17.390023]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1017
    [17.390300][17.390300:390360]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1017
    [17.390300]
    [17.390360]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1023
    [17.390532][17.390532:390592]()
    txn.debug_to_file(&channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1023
    [17.390532]
    [17.390592]
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1055
    [17.391530][17.391530:391592]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1055
    [17.391530]
    [17.391592]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1080
    [17.392298][17.392298:392420]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1080
    [17.392298]
    [17.392420]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1083
    [17.392506][17.392506:392566]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1083
    [17.392506]
    [17.392566]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1091
    [17.392791][17.392791:392855]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1091
    [17.392791]
    [17.392855]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1118
    [17.393580][17.393580:393644]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1118
    [17.393580]
    [17.393644]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1146
    [17.394353][17.394353:394417]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1146
    [17.394353]
    [17.394417]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1158
    [17.394694][17.394694:394754]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1158
    [17.394694]
    [17.394754]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1164
    [17.394926][17.394926:394986]()
    txn.debug_to_file(&channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1164
    [17.394926]
    [17.394986]
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1299
    [17.399148][17.399148:399210]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1299
    [17.399148]
    [17.399210]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1324
    [17.399916][17.399916:400038]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1324
    [17.399916]
    [17.400038]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1327
    [17.400124][17.400124:400184]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1327
    [17.400124]
    [17.400184]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1335
    [17.400409][17.400409:400473]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1335
    [17.400409]
    [17.400473]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1350
    [17.400822][17.400822:400886]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1350
    [17.400822]
    [17.400886]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1360
    [17.401157][17.401157:401221]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1360
    [17.401157]
    [17.401221]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1372
    [17.401498][17.401498:401558]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1372
    [17.401498]
    [17.401558]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1387
    [17.401918][17.401918:401978]()
    txn.debug_to_file(&channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1387
    [17.401918]
    [17.401978]
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1419
    [17.403007][17.403007:403069]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1419
    [17.403007]
    [17.403069]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1445
    [17.403776][17.403776:403898]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1445
    [17.403776]
    [17.403898]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1448
    [17.403984][17.403984:404044]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1448
    [17.403984]
    [17.404044]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1457
    [17.404298][17.404298:404362]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1457
    [17.404298]
    [17.404362]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1470
    [17.404664][17.404664:404728]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1470
    [17.404664]
    [17.404728]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1482
    [17.405144][17.405144:405208]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1482
    [17.405144]
    [17.405208]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1506
    [17.405866][17.405866:405926]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1506
    [17.405866]
    [17.405926]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1520
    [17.406281][17.406281:406345]()
    txn.debug_to_file(&channel_alice, "debug_alice3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1520
    [17.406281]
    [17.406345]
    debug_to_file(&txn, &channel_alice, "debug_alice3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1597
    [17.408728][17.408728:408783]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob")?;
  • edit in libpijul/src/tests/conflict.rs at line 1597
    [17.408728]
    [17.408783]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob")?;
  • edit in libpijul/src/tests/conflict.rs at line 1607
    [17.409102][17.409102:409158]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/conflict.rs at line 1607
    [17.409102]
    [17.409158]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/conflict.rs at line 1613
    [17.409393][17.409393:409468]()
    txn_bob.debug_to_file(&channel_bob, &format!("debug_bob_{}", n))?;
  • edit in libpijul/src/tests/conflict.rs at line 1613
    [17.409393]
    [17.409468]
    debug_to_file(&txn_bob, &channel_bob, &format!("debug_bob_{}", n))?;
    // if n == 2 {
    // panic!("n")
    // }
  • edit in libpijul/src/tests/conflict.rs at line 1640
    [17.410117][17.410117:410173]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/conflict.rs at line 1640
    [17.410117]
    [17.410173]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/conflict.rs at line 1654
    [17.410481]
    [17.410481]
    debug!("Alice applies Bob's change");
  • edit in libpijul/src/tests/conflict.rs at line 1656
    [17.410568][17.410568:410630]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/conflict.rs at line 1656
    [17.410568]
    [17.410630]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice1")?;
  • edit in libpijul/src/tests/conflict.rs at line 1680
    [17.411286][17.411286:411348]()
    txn_alice.debug_to_file(&channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/conflict.rs at line 1680
    [17.411286]
    [17.411348]
    debug_to_file(&txn_alice, &channel_alice, "debug_alice2")?;
  • edit in libpijul/src/tests/conflict.rs at line 1745
    [17.413431][17.413431:413487]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/conflict.rs at line 1745
    [17.413431]
    [17.413487]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0")?;
  • edit in libpijul/src/tests/conflict.rs at line 1751
    [17.413655][17.413655:413711]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/conflict.rs at line 1751
    [17.413655]
    [17.413711]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1")?;
  • edit in libpijul/src/tests/conflict.rs at line 1760
    [17.413876][17.413876:413933]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1_")?;
  • edit in libpijul/src/tests/conflict.rs at line 1760
    [17.413876]
    [17.413933]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1_")?;
  • edit in libpijul/src/tests/conflict.rs at line 1782
    [17.414531][17.414531:414587]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/conflict.rs at line 1782
    [17.414531]
    [17.414587]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2")?;
  • edit in libpijul/src/tests/conflict.rs at line 1823
    [17.415984][17.415984:416046]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1823
    [17.415984]
    [17.416046]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1863
    [17.417248][17.417248:417312]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1863
    [17.417248]
    [17.417312]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1871
    [17.417528][17.417528:417588]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1871
    [17.417528]
    [17.417588]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1885
    [17.417864][17.417864:417941]()
    txn.debug_to_file(&channel_charlie, "debug_charlie0")
    .unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1885
    [17.417864]
    [17.417941]
    debug_to_file(&txn, &channel_charlie, "debug_charlie0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1900
    [17.418344][17.418344:418408]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1900
    [17.418344]
    [17.418408]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1914
    [17.418773][17.418773:418837]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1914
    [17.418773]
    [17.418837]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1919
    [17.419036][17.419036:419096]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1919
    [17.419036]
    [17.419096]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1930
    [17.419346][17.419346:419423]()
    txn.debug_to_file(&channel_charlie, "debug_charlie1")
    .unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1930
    [17.419346]
    [17.419423]
    debug_to_file(&txn, &channel_charlie, "debug_charlie1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1932
    [17.419500][17.419500:419577]()
    txn.debug_to_file(&channel_charlie, "debug_charlie2")
    .unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1932
    [17.419500]
    [17.419577]
    debug_to_file(&txn, &channel_charlie, "debug_charlie2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1934
    [17.419657][17.419657:419734]()
    txn.debug_to_file(&channel_charlie, "debug_charlie3")
    .unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1934
    [17.419657]
    [17.419734]
    debug_to_file(&txn, &channel_charlie, "debug_charlie3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1958
    [17.420507][17.420507:420569]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 1958
    [17.420507]
    [17.420569]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2014
    [17.422179][17.422179:422301]()
    txn.debug_to_file(&channel_alice, "debug_alice").unwrap();
    txn.debug_to_file(&channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2014
    [17.422179]
    [17.422301]
    debug_to_file(&txn, &channel_alice, "debug_alice").unwrap();
    debug_to_file(&txn, &channel_bob, "debug_bob").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2017
    [17.422387][17.422387:422447]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2017
    [17.422387]
    [17.422447]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2025
    [17.422672][17.422672:422736]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2025
    [17.422672]
    [17.422736]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2040
    [17.423138][17.423138:423202]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2040
    [17.423138]
    [17.423202]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2055
    [17.423635][17.423635:423699]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2055
    [17.423635]
    [17.423699]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2067
    [17.423976][17.423976:424036]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2067
    [17.423976]
    [17.424036]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2087
    [17.424778][17.424778:424838]()
    txn.debug_to_file(&channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2087
    [17.424778]
    [17.424838]
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2097
    [17.425030][17.425030:425090]()
    txn.debug_to_file(&channel_bob, "debug_bob3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2097
    [17.425030]
    [17.425090]
    debug_to_file(&txn, &channel_bob, "debug_bob3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2125
    [17.425982][17.425982:426042]()
    txn.debug_to_file(&channel_bob, "debug_bob4").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2125
    [17.425982]
    [17.426042]
    debug_to_file(&txn, &channel_bob, "debug_bob4").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2140
    [17.426430][17.426430:426490]()
    txn.debug_to_file(&channel_bob, "debug_bob5").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2140
    [17.426430]
    [17.426490]
    debug_to_file(&txn, &channel_bob, "debug_bob5").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2172
    [17.427543][17.427543:427605]()
    txn.debug_to_file(&channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2172
    [17.427543]
    [17.427605]
    debug_to_file(&txn, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2209
    [17.428769][17.428769:428829]()
    txn.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2209
    [17.428769]
    [17.428829]
    debug_to_file(&txn, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2227
    [17.429445][17.429445:429509]()
    txn.debug_to_file(&channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2227
    [17.429445]
    [17.429509]
    debug_to_file(&txn, &channel_alice, "debug_alice0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2244
    [17.430060][17.430060:430124]()
    txn.debug_to_file(&channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2244
    [17.430060]
    [17.430124]
    debug_to_file(&txn, &channel_alice, "debug_alice1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2259
    [17.430557][17.430557:430621]()
    txn.debug_to_file(&channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2259
    [17.430557]
    [17.430621]
    debug_to_file(&txn, &channel_alice, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2273
    [17.431063][17.431063:431123]()
    txn.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2273
    [17.431063]
    [17.431123]
    debug_to_file(&txn, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2322
    [17.432904][17.432904:432964]()
    txn.debug_to_file(&channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2322
    [17.432904]
    [17.432964]
    debug_to_file(&txn, &channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2332
    [17.433156][17.433156:433216]()
    txn.debug_to_file(&channel_bob, "debug_bob3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2332
    [17.433156]
    [17.433216]
    debug_to_file(&txn, &channel_bob, "debug_bob3").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2339
    [17.433434][17.433434:433556]()
    txn.debug_to_file(&channel_bob, "debug_bob4").unwrap();
    let (alive_, reachable_) = txn.check_alive(&channel_bob);
  • edit in libpijul/src/tests/conflict.rs at line 2339
    [17.433434]
    [17.433556]
    debug_to_file(&txn, &channel_bob, "debug_bob4").unwrap();
    let (alive_, reachable_) = check_alive(&txn, &channel_bob);
  • edit in libpijul/src/tests/conflict.rs at line 2356
    [17.433926][17.433926:434046]()
    txn.debug_to_file(&channel_bob, "debug_bob5").unwrap();
    let (alive, reachable) = txn.check_alive(&channel_bob);
  • edit in libpijul/src/tests/conflict.rs at line 2356
    [17.433926]
    [17.434046]
    debug_to_file(&txn, &channel_bob, "debug_bob5").unwrap();
    let (alive, reachable) = check_alive(&txn, &channel_bob);
  • edit in libpijul/src/tests/conflict.rs at line 2373
    [17.434661][17.434661:434801]()
    txn.debug_to_file(&channel_charlie, "debug_charlie")
    .unwrap();
    let (alive, reachable) = txn.check_alive(&channel_charlie);
  • edit in libpijul/src/tests/conflict.rs at line 2373
    [17.434661]
    [17.434801]
    debug_to_file(&txn, &channel_charlie, "debug_charlie").unwrap();
    let (alive, reachable) = check_alive(&txn, &channel_charlie);
  • edit in libpijul/src/tests/conflict.rs at line 2389
    [17.435146][17.435146:435223]()
    txn.debug_to_file(&channel_charlie, "debug_charlie1")
    .unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2389
    [17.435146]
    [17.435223]
    debug_to_file(&txn, &channel_charlie, "debug_charlie1").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2391
    [17.435224][17.435224:435288]()
    let (alive, reachable) = txn.check_alive(&channel_charlie);
  • edit in libpijul/src/tests/conflict.rs at line 2391
    [17.435224]
    [17.435288]
    let (alive, reachable) = check_alive(&txn, &channel_charlie);
  • edit in libpijul/src/tests/conflict.rs at line 2428
    [17.436405][17.436405:436491]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_init")
    .unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2428
    [17.436405]
    [17.436491]
    debug_to_file(&txn_alice, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2457
    [17.437394][17.437394:437457]()
    txn_alice.debug_to_file(&channel_alice, "debug").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2457
    [17.437394]
    [17.437457]
    debug_to_file(&txn_alice, &channel_alice, "debug").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2470
    [17.437747][17.437747:437815]()
    let (alive, reachable) = txn_alice.check_alive(&channel_alice);
  • edit in libpijul/src/tests/conflict.rs at line 2470
    [17.437747]
    [17.437815]
    let (alive, reachable) = check_alive(&txn_alice, &channel_alice);
  • edit in libpijul/src/tests/conflict.rs at line 2485
    [17.438158][17.438158:438222]()
    txn_alice.debug_to_file(&channel_alice, "debug2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2485
    [17.438158]
    [17.438222]
    debug_to_file(&txn_alice, &channel_alice, "debug2").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2516
    [17.439178][17.439178:439264]()
    txn_alice
    .debug_to_file(&channel_alice, "debug_init")
    .unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2516
    [17.439178]
    [17.439264]
    debug_to_file(&txn_alice, &channel_alice, "debug_init").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2537
    [17.439914][17.439914:439978]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2537
    [17.439914]
    [17.439978]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob0").unwrap();
  • edit in libpijul/src/tests/conflict.rs at line 2567
    [17.440857][17.440857:440957]()
    if !txn.is_alive(&channel, vertex.inode_vertex()) {
    for e in txn.iter_adjacent(
  • edit in libpijul/src/tests/conflict.rs at line 2567
    [17.440857]
    [17.440957]
    if !is_alive(txn, &channel, vertex.inode_vertex()) {
    for e in iter_adjacent(
    txn,
  • edit in libpijul/src/tests/conflict.rs at line 2581
    [17.441311][17.441311:441349]()
    txn.tree_path(vertex)
  • edit in libpijul/src/tests/conflict.rs at line 2581
    [17.441311]
    [17.441349]
    tree_path(txn, vertex)
  • edit in libpijul/src/tests/clone.rs at line 24
    [17.442197][17.442197:442253]()
    txn.debug_to_file(&channel, "debug0").unwrap();
  • edit in libpijul/src/tests/clone.rs at line 24
    [17.442197]
    [17.442253]
    debug_to_file(&txn, &channel, "debug0").unwrap();
  • edit in libpijul/src/tests/clone.rs at line 31
    [17.442486][17.442486:442542]()
    txn.debug_to_file(&channel, "debug1").unwrap();
  • edit in libpijul/src/tests/clone.rs at line 31
    [17.442486]
    [17.442542]
    debug_to_file(&txn, &channel, "debug1").unwrap();
  • edit in libpijul/src/tests/clone.rs at line 54
    [17.443325][17.443325:443386]()
    txn2.debug_to_file(&channel, "debug2").unwrap();
  • edit in libpijul/src/tests/clone.rs at line 54
    [17.443325]
    [17.443386]
    debug_to_file(&txn2, &channel, "debug2").unwrap();
  • edit in libpijul/src/tests/change.rs at line 85
    [17.448856][17.448856:448899]()
    txn.debug_to_file(&channel, "debug")?;
  • edit in libpijul/src/tests/change.rs at line 85
    [17.448856]
    [17.448899]
    debug_to_file(&txn, &channel, "debug")?;
  • edit in libpijul/src/tests/add_file.rs at line 23
    [17.454845][17.454845:454900]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 23
    [17.454845]
    [17.454900]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 50
    [17.455902][17.455902:455959]()
    txn.debug_to_file(&channel_, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 50
    [17.455902]
    [17.455959]
    debug_to_file(&txn, &channel_, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 83
    [17.456968][17.456968:457003]()
    txn.debug_tree("debug_tree")?;
  • edit in libpijul/src/tests/add_file.rs at line 83
    [17.456968]
    [17.457003]
    debug_tree(&txn, "debug_tree")?;
  • edit in libpijul/src/tests/add_file.rs at line 108
    [17.457793][17.457793:457849]()
    txn.debug_to_file(&channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 108
    [17.457793]
    [17.457849]
    debug_to_file(&txn, &channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 124
    [17.458397][17.458397:458452]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 124
    [17.458397]
    [17.458452]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 166
    [17.459818][17.459818:459869]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 166
    [17.459818]
    [17.459869]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 176
    [17.460193][17.460193:460244]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 176
    [17.460193]
    [17.460244]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 206
    [17.461136][17.461136:461188]()
    txn.debug_to_file(&channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 206
    [17.461136]
    [17.461188]
    debug_to_file(&txn, &channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 208
    [17.461261][17.461261:461313]()
    txn.debug_to_file(&channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 208
    [17.461261]
    [17.461313]
    debug_to_file(&txn, &channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 217
    [17.461628][17.461628:461680]()
    txn.debug_to_file(&channel, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 217
    [17.461628]
    [17.461680]
    debug_to_file(&txn, &channel, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 238
    [17.462344][17.462344:462402]()
    txn_alice.debug_to_file(&channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 238
    [17.462344]
    [17.462402]
    debug_to_file(&txn_alice, &channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 242
    [17.462542][17.462542:462600]()
    txn_alice.debug_to_file(&channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 242
    [17.462542]
    [17.462600]
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 257
    [17.463066][17.463066:463126]()
    txn_bob.debug_to_file(&channel, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 257
    [17.463066]
    [17.463126]
    debug_to_file(&txn_bob, &channel, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 270
    [17.463447][17.463447:463507]()
    txn_bob.debug_to_file(&channel, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 270
    [17.463447]
    [17.463507]
    debug_to_file(&txn_bob, &channel, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 295
    [17.464408][17.464408:464466]()
    txn_alice.debug_to_file(&channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 295
    [17.464408]
    [17.464466]
    debug_to_file(&txn_alice, &channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 301
    [17.464621][17.464621:464662]()
    txn_alice.debug_tree("debug_tree")?;
  • edit in libpijul/src/tests/add_file.rs at line 301
    [17.464621]
    [17.464662]
    debug_tree(&txn_alice, "debug_tree")?;
  • edit in libpijul/src/tests/add_file.rs at line 304
    [17.464790][17.464790:464919]()
    txn_alice.debug_to_file(&channel, "debug1").unwrap();
    txn_alice.debug_tree("debug_tree")?;
    txn_alice.debug_inodes();
  • edit in libpijul/src/tests/add_file.rs at line 304
    [17.464790]
    [17.464919]
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
    debug_tree(&txn_alice, "debug_tree")?;
    debug_inodes(&txn_alice);
  • edit in libpijul/src/tests/add_file.rs at line 312
    [17.465117][17.465117:465175]()
    txn_alice.debug_to_file(&channel, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 312
    [17.465117]
    [17.465175]
    debug_to_file(&txn_alice, &channel, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 378
    [17.467237][17.467237:467295]()
    txn_alice.debug_to_file(&channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 378
    [17.467237]
    [17.467295]
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 413
    [17.468380][17.468380:468438]()
    txn_alice.debug_to_file(&channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 413
    [17.468380]
    [17.468438]
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 419
    [17.468631][17.468631:468689]()
    txn_alice.debug_to_file(&channel, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 419
    [17.468631]
    [17.468689]
    debug_to_file(&txn_alice, &channel, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 439
    [17.469355][17.469355:469419]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 439
    [17.469355]
    [17.469419]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 443
    [17.469508][17.469508:469572]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 443
    [17.469508]
    [17.469572]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 456
    [17.469859][17.469859:469923]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob3").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 456
    [17.469859]
    [17.469923]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob3").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 469
    [17.470249][17.470249:470317]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob4").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 469
    [17.470249]
    [17.470317]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob4").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 475
    [17.470453][17.470453:470521]()
    txn_alice.debug_to_file(&channel, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 475
    [17.470453]
    [17.470521]
    debug_to_file(&txn_alice, &channel, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 492
    [17.470962][17.470962:471030]()
    txn_alice.debug_to_file(&channel, "debug_alice3").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 492
    [17.470962]
    [17.471030]
    debug_to_file(&txn_alice, &channel, "debug_alice3").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 513
    [17.471587][17.471587:471655]()
    txn_bob.debug_to_file(&channel_bob, "debug_bob4").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 513
    [17.471587]
    [17.471655]
    debug_to_file(&txn_bob, &channel_bob, "debug_bob4").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 533
    [17.472223][17.472223:472291]()
    txn_alice.debug_to_file(&channel, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 533
    [17.472223]
    [17.472291]
    debug_to_file(&txn_alice, &channel, "debug_alice2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 599
    [17.474394][17.474394:474452]()
    txn_alice.debug_to_file(&channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 599
    [17.474394]
    [17.474452]
    debug_to_file(&txn_alice, &channel, "debug0").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 609
    [17.474853][17.474853:474911]()
    txn_alice.debug_to_file(&channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 609
    [17.474853]
    [17.474911]
    debug_to_file(&txn_alice, &channel, "debug1").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 618
    [17.475076][17.475076:475134]()
    txn_alice.debug_to_file(&channel, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 618
    [17.475076]
    [17.475134]
    debug_to_file(&txn_alice, &channel, "debug2").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 675
    [17.476583][17.476583:476641]()
    txn_alice.debug_to_file(&channel, "debug3").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 675
    [17.476583]
    [17.476641]
    debug_to_file(&txn_alice, &channel, "debug3").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 677
    [17.476642][17.476642:476704]()
    let (alive, reachable) = txn_alice.check_alive(&channel);
  • edit in libpijul/src/tests/add_file.rs at line 677
    [17.476642]
    [17.476704]
    let (alive, reachable) = check_alive(&txn_alice, &channel);
  • edit in libpijul/src/tests/add_file.rs at line 711
    [17.477781][17.477781:477832]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 711
    [17.477781]
    [17.477832]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 729
    [17.478347][17.478347:478402]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 729
    [17.478347]
    [17.478402]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 750
    [17.479051][17.479051:479106]()
    txn.debug_to_file(&channel, "debug").unwrap();
  • edit in libpijul/src/tests/add_file.rs at line 750
    [17.479051]
    [17.479106]
    debug_to_file(&txn, &channel, "debug").unwrap();
  • edit in libpijul/src/record.rs at line 329
    [17.500045][17.500045:500138]()
    for name_ in txn
    .iter_adjacent(&channel, vertex.inode_vertex(), f0, f1)
  • edit in libpijul/src/record.rs at line 329
    [17.500045]
    [17.500138]
    for name_ in iter_adjacent(txn, &channel, vertex.inode_vertex(), f0, f1)
  • edit in libpijul/src/record.rs at line 338
    [17.500452][17.500452:500531]()
    let name_dest = txn.find_block_end(&channel, name_.dest).unwrap();
  • edit in libpijul/src/record.rs at line 338
    [17.500452]
    [17.500531]
    let name_dest = find_block_end(txn, &channel, name_.dest).unwrap();
  • edit in libpijul/src/record.rs at line 345
    [17.500926][17.500926:501016]()
    if let Some(v_papa) = txn.iter_adjacent(&channel, name_dest, f0, f1).next() {
  • edit in libpijul/src/record.rs at line 345
    [17.500926]
    [17.501016]
    if let Some(v_papa) = iter_adjacent(txn, &channel, name_dest, f0, f1).next() {
  • edit in libpijul/src/record.rs at line 418
    [17.503681][17.503681:503904]()
    for child in txn.iter_adjacent(&channel, v.inode_vertex(), f0, f1) {
    let child = txn.find_block(&channel, child.dest).unwrap();
    for grandchild in txn.iter_adjacent(&channel, child, f0, f1) {
  • edit in libpijul/src/record.rs at line 418
    [17.503681]
    [17.503904]
    for child in iter_adjacent(txn, &channel, v.inode_vertex(), f0, f1) {
    let child = find_block(txn, &channel, child.dest).unwrap();
    for grandchild in iter_adjacent(txn, &channel, child, f0, f1) {
  • edit in libpijul/src/record.rs at line 632
    [17.511386][17.511386:511660]()
    for parent in txn
    .iter_adjacent(
    channel,
    current_pos.inode_vertex(),
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::all(),
    )
    .filter(|e| e.flag.contains(EdgeFlags::FOLDER | EdgeFlags::PARENT))
  • edit in libpijul/src/record.rs at line 632
    [17.511386]
    [17.511660]
    for parent in iter_adjacent(
    txn,
    channel,
    current_pos.inode_vertex(),
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::all(),
    )
    .filter(|e| e.flag.contains(EdgeFlags::FOLDER | EdgeFlags::PARENT))
  • edit in libpijul/src/record.rs at line 666
    [17.512793][17.512793:512871]()
    let parent_dest = txn.find_block_end(&channel, parent.dest).unwrap();
  • edit in libpijul/src/record.rs at line 666
    [17.512793]
    [17.512871]
    let parent_dest = find_block_end(txn, &channel, parent.dest).unwrap();
  • edit in libpijul/src/record.rs at line 676
    [17.513298][17.513298:513695]()
    for grandparent in txn
    .iter_adjacent(
    channel,
    parent_dest,
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::all(),
    )
    .filter(|e| {
    e.flag.contains(EdgeFlags::FOLDER | EdgeFlags::PARENT)
    && !e.flag.contains(EdgeFlags::PSEUDO)
    })
    {
  • edit in libpijul/src/record.rs at line 676
    [17.513298]
    [17.513695]
    for grandparent in iter_adjacent(
    txn,
    channel,
    parent_dest,
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::all(),
    )
    .filter(|e| {
    e.flag.contains(EdgeFlags::FOLDER | EdgeFlags::PARENT)
    && !e.flag.contains(EdgeFlags::PSEUDO)
    }) {
  • edit in libpijul/src/record.rs at line 689
    [17.513816][17.513816:513908]()
    let grandparent_dest = txn.find_block_end(&channel, grandparent.dest).unwrap();
  • edit in libpijul/src/record.rs at line 689
    [17.513816]
    [17.513908]
    let grandparent_dest = find_block_end(txn, &channel, grandparent.dest).unwrap();
  • edit in libpijul/src/record.rs at line 804
    [17.518868][17.518868:518936]()
    if let Some(path) = txn.tree_path(vertex.start_pos()) {
  • edit in libpijul/src/record.rs at line 804
    [17.518868]
    [17.518936]
    if let Some(path) = tree_path(txn, vertex.start_pos()) {
  • edit in libpijul/src/record.rs at line 837
    [17.520311][17.520311:520354]()
    for edge in txn.iter_adjacent(
  • edit in libpijul/src/record.rs at line 837
    [17.520311]
    [17.520354]
    for edge in iter_adjacent(
    txn,
  • edit in libpijul/src/record.rs at line 845
    [17.520594][17.520594:520742]()
    let dest = txn
    .find_block(&channel, edge.dest)
    .expect("delete_recursively, descendants");
  • edit in libpijul/src/record.rs at line 845
    [17.520594]
    [17.520742]
    let dest =
    find_block(txn, &channel, edge.dest).expect("delete_recursively, descendants");
  • edit in libpijul/src/record.rs at line 872
    [17.521502][17.521502:521556]()
    for parent in txn
    .iter_adjacent(
  • edit in libpijul/src/record.rs at line 872
    [17.521502]
    [17.521556]
    for parent in iter_adjacent(
    txn,
    channel,
    vertex,
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::all(),
    )
    .filter(|e| e.flag.contains(EdgeFlags::PARENT))
    {
    assert!(parent.flag.contains(EdgeFlags::PARENT));
    assert!(parent.flag.contains(EdgeFlags::FOLDER));
    let parent_dest = find_block_end(txn, &channel, parent.dest).unwrap();
    for grandparent in iter_adjacent(
    txn,
  • edit in libpijul/src/record.rs at line 887
    [17.521581][17.521581:521605]()
    vertex,
  • edit in libpijul/src/record.rs at line 887
    [17.521581]
    [17.521605]
    parent_dest,
  • edit in libpijul/src/record.rs at line 891
    [17.521708][17.521708:522371]()
    .filter(|e| e.flag.contains(EdgeFlags::PARENT))
    {
    assert!(parent.flag.contains(EdgeFlags::PARENT));
    assert!(parent.flag.contains(EdgeFlags::FOLDER));
    let parent_dest = txn.find_block_end(&channel, parent.dest).unwrap();
    for grandparent in txn
    .iter_adjacent(
    channel,
    parent_dest,
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::all(),
    )
    .filter(|e| {
    e.flag.contains(EdgeFlags::PARENT) && !e.flag.contains(EdgeFlags::PSEUDO)
    })
  • edit in libpijul/src/record.rs at line 891
    [17.521708]
    [17.522371]
    .filter(|e| e.flag.contains(EdgeFlags::PARENT) && !e.flag.contains(EdgeFlags::PSEUDO))
  • edit in libpijul/src/record.rs at line 944
    [17.524312][17.524312:524640]()
    for parent in txn
    .iter_adjacent(
    channel,
    to,
    EdgeFlags::PARENT,
    EdgeFlags::all() - EdgeFlags::DELETED,
    )
    .filter(|e| !e.flag.contains(EdgeFlags::PSEUDO))
  • edit in libpijul/src/record.rs at line 944
    [17.524312]
    [17.524640]
    for parent in iter_adjacent(
    txn,
    channel,
    to,
    EdgeFlags::PARENT,
    EdgeFlags::all() - EdgeFlags::DELETED,
    )
    .filter(|e| !e.flag.contains(EdgeFlags::PSEUDO))
  • edit in libpijul/src/pristine/sanakirja.rs at line 37
    [2.483][2.483:519]()
    Err(e) => Err(e.into())
  • edit in libpijul/src/pristine/sanakirja.rs at line 37
    [2.483]
    [2.519]
    Err(e) => Err(e.into()),
  • edit in libpijul/src/pristine/sanakirja.rs at line 79
    [17.532869][2.530:658]()
    fn begin(txn: ::sanakirja::Txn<::sanakirja::Exclusive, Arc<::sanakirja::Env<::sanakirja::Exclusive>>>) -> Option<Txn> {
  • edit in libpijul/src/pristine/sanakirja.rs at line 79
    [17.532869]
    [17.532949]
    fn begin(
    txn: ::sanakirja::Txn<
    ::sanakirja::Exclusive,
    Arc<::sanakirja::Env<::sanakirja::Exclusive>>,
    >,
    ) -> Option<Txn> {
  • edit in libpijul/src/pristine/sanakirja.rs at line 167
    [17.536443][2.659:879]()
    pub type Txn = GenericTxn<::sanakirja::Txn<::sanakirja::Exclusive, Arc<::sanakirja::Env<::sanakirja::Exclusive>>>>;
    pub type MutTxn<T> = GenericTxn<::sanakirja::MutTxn<Arc<::sanakirja::Env<::sanakirja::Exclusive>>, T>>;
  • edit in libpijul/src/pristine/sanakirja.rs at line 167
    [17.536443]
    [17.536591]
    pub type Txn = GenericTxn<
    ::sanakirja::Txn<::sanakirja::Exclusive, Arc<::sanakirja::Env<::sanakirja::Exclusive>>>,
    >;
    pub type MutTxn<T> =
    GenericTxn<::sanakirja::MutTxn<Arc<::sanakirja::Env<::sanakirja::Exclusive>>, T>>;
  • edit in libpijul/src/pristine/sanakirja.rs at line 319
    [17.542281][17.542281:542300]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 323
    [17.542455][17.542455:542474]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 330
    [17.542669][17.542669:542688]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 330
    [17.542669]
    [17.542688]
  • edit in libpijul/src/pristine/sanakirja.rs at line 420
    [17.545476][17.545476:545495]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 426
    [17.545760][17.545760:545779]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 456
    [17.546725][17.546725:546744]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 456
    [17.546725]
    [17.546744]
  • edit in libpijul/src/pristine/sanakirja.rs at line 473
    [17.547110][17.547110:547129]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 474
    [17.547169][17.547169:547188]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 474
    [17.547169]
    [17.547188]
  • edit in libpijul/src/pristine/sanakirja.rs at line 476
    [17.547241][17.547241:547260]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 476
    [17.547241]
    [17.547260]
  • edit in libpijul/src/pristine/sanakirja.rs at line 484
    [17.547589][17.547589:547608]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 486
    [17.547648][17.547648:547667]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 494
    [17.548014][17.548014:548033]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 502
    [17.548309][17.548309:548328]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 503
    [17.548387][17.548387:548406]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 503
    [17.548387]
    [17.548406]
  • edit in libpijul/src/pristine/sanakirja.rs at line 508
    [17.548606][17.548606:548625]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 634
    [17.552993][17.552993:553012]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 634
    [17.552993]
    [17.553012]
  • edit in libpijul/src/pristine/sanakirja.rs at line 641
    [17.553202][17.553202:553221]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 648
    [17.553430][17.553430:553449]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 655
    [17.553652][17.553652:553671]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 663
    [17.553932][17.553932:553951]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 671
    [17.554218][17.554218:554237]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 802
    [17.558873][17.558873:558892]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 810
    [17.559107][17.559107:559126]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 810
    [17.559107]
    [17.559126]
  • edit in libpijul/src/pristine/sanakirja.rs at line 821
    [17.559395][17.559395:559414]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 830
    [17.559731][17.559731:559750]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 830
    [17.559731]
    [17.559750]
  • edit in libpijul/src/pristine/sanakirja.rs at line 845
    [17.560107][17.560107:560126]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 874
    [17.561091][17.561091:561110]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/sanakirja.rs at line 1416
    [17.580608][17.580608:580623]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 27
    [17.587267]
    [17.587267]
    mod block;
    pub(crate) use block::*;
  • edit in libpijul/src/pristine/mod.rs at line 150
    [17.590120][17.590120:590139]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 170
    [17.590867][17.590867:590886]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 174
    [17.591060][17.591060:591079]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 201
    [17.592310][17.592310:592329]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 202
    [17.592412][17.592412:599224]()
    // Provided methods
    /// Iterate the graph between `(key, min_flag)` and `(key,
    /// max_flag)`, where both bounds are included.
    #[doc(hidden)]
    fn iter_adjacent<'db, 'txn: 'db>(
    &'txn self,
    channel: &'db Channel<Self>,
    key: Vertex<ChangeId>,
    min_flag: EdgeFlags,
    max_flag: EdgeFlags,
    ) -> AdjacentIterator<'txn, Self> {
    let edge = Edge {
    flag: min_flag,
    dest: Position::ROOT,
    introduced_by: ChangeId::ROOT,
    };
    AdjacentIterator {
    it: self.iter_graph(&channel.graph, key, Some(edge)),
    key,
    min_flag,
    max_flag,
    }
    }
    /// Find the key where a position is.
    #[doc(hidden)]
    fn find_block<'db, 'txn: 'db>(
    &'txn self,
    channel: &'db Channel<Self>,
    p: Position<ChangeId>,
    ) -> Result<Vertex<ChangeId>, crate::Error> {
    if p.change.is_root() {
    return Ok(Vertex::ROOT);
    }
    let key = Vertex {
    change: p.change,
    start: p.pos,
    end: p.pos,
    };
    debug!(target: "libpijul::find_block", "find_block {:?}", key);
    let mut cursor = self.cursor_graph(&channel.graph, Some((key, None)));
    let mut k = if let Some((k, _)) = cursor.next() {
    k
    } else {
    return Err(crate::Error::WrongBlock { block: p });
    };
    debug!("k = {:?}", k);
    // The only guarantee here is that k is either the first key
    // >= `key`, or the key just before that. We might need to
    // rewind by one step if key is strictly larger than the
    // result (i.e. if `p` is in the middle of the key).
    while k.change > p.change || (k.change == p.change && k.start > p.pos) {
    debug!(target: "libpijul::find_block", "find_block while {:?}", k);
    if let Some((k_, _)) = cursor.prev() {
    k = k_
    } else {
    break;
    }
    }
    loop {
    debug!(target: "libpijul::find_block", "find_block loop {:?}", k);
    if k.change == p.change && k.start <= p.pos {
    if k.end > p.pos || (k.start == k.end && k.end == p.pos) {
    return Ok(k);
    }
    } else if k.change > p.change {
    return Err(crate::Error::WrongBlock { block: p });
    }
    if let Some((k_, _)) = cursor.next() {
    k = k_
    } else {
    break;
    }
    }
    debug!(target: "libpijul::find_block", "find_block None, {:?}", k);
    Err(crate::Error::WrongBlock { block: p })
    }
    /// Find the key ending at a position.
    #[doc(hidden)]
    fn find_block_end<'db, 'txn: 'db>(
    &'txn self,
    channel: &'db Channel<Self>,
    p: Position<ChangeId>,
    ) -> Result<Vertex<ChangeId>, crate::Error> {
    if p.change.is_root() {
    return Ok(Vertex::ROOT);
    }
    let key = Vertex {
    change: p.change,
    start: p.pos,
    end: p.pos,
    };
    debug!(target: "libpijul::find_block_end", "find_block_end {:?}, p.change.0 = {:?}", key, p.change.0);
    let mut cursor = self.cursor_graph(&channel.graph, Some((key, None)));
    let mut k = if let Some((k, _)) = cursor.next() {
    k
    } else {
    return Err(crate::Error::WrongBlock { block: p });
    };
    // The only guarantee here is that k is either the first key
    // before `key`, or the key just before that.
    loop {
    debug!(target: "libpijul::find_block_end", "find_block_end loop {:?} k.change.0 = {:?}", k, k.change.0);
    if k.change < p.change {
    break;
    } else if k.change == p.change {
    // Here we want to create an edge pointing between `p`
    // and its successor. If k.start == p.pos, the only
    // case where that's what we want is if k.start ==
    // k.end.
    if k.start == p.pos && k.end == p.pos {
    break;
    } else if k.start < p.pos {
    break;
    }
    }
    if let Some((k_, _)) = cursor.prev() {
    k = k_
    } else {
    break;
    }
    }
    // We also want k.end >= p.pos, so we just call next() until
    // we have that.
    debug!(target: "libpijul::find_block_end", "find_block_end k(0) = {:?} k.change.0 = {:?}", k, k.change.0);
    while k.change < p.change || (k.change == p.change && p.pos > k.end) {
    if let Some((k_, _)) = cursor.next() {
    k = k_
    } else {
    break;
    }
    }
    debug!(target: "libpijul::find_block_end", "find_block_end k(1) = {:?}, k.change.0 = {:?}", k, k.change.0);
    if k.change == p.change && k.start <= p.pos && p.pos <= k.end {
    Ok(k)
    } else {
    Err(crate::Error::WrongBlock { block: p })
    }
    }
    fn tree_path(&self, v: Position<ChangeId>) -> Option<String> {
    if let Some(mut inode) = self.get_revinodes(v, None) {
    let mut components = Vec::new();
    while !inode.is_root() {
    if let Some(next) = self.get_revtree(inode, None) {
    components.push(next.basename.as_str().to_string());
    inode = next.parent_inode;
    } else {
    assert!(components.is_empty());
    return None;
    }
    }
    if let Some(mut result) = components.pop() {
    while let Some(c) = components.pop() {
    result = result + "/" + c.as_str()
    }
    Some(result)
    } else {
    None
    }
    } else {
    None
    }
    }
    #[doc(hidden)]
    fn internal(&self, h: &Option<Hash>, p: ChangeId) -> Option<ChangeId> {
    match *h {
    Some(Hash::None) => Some(ChangeId::ROOT),
    Some(h) => self.get_internal(h),
    None => Some(p),
    }
    }
    #[doc(hidden)]
    fn internal_pos(
    &self,
    pos: &Position<Option<Hash>>,
    change_id: ChangeId,
    ) -> Result<Position<ChangeId>, crate::Error> {
    Ok(Position {
    change: if let Some(p) = pos.change {
    if let Some(p) = self.get_internal(p) {
    p
    } else {
    return Err(crate::Error::InconsistentChange);
    }
    } else {
    change_id
    },
    pos: pos.pos,
    })
    }
  • edit in libpijul/src/pristine/mod.rs at line 203
    [17.599225][17.599225:599887]()
    #[doc(hidden)]
    fn iter_graph<'txn>(
    &'txn self,
    graph: &Self::Graph,
    k: Vertex<ChangeId>,
    v: Option<Edge>,
    ) -> Cursor<Self, &'txn Self, Self::GraphCursor, Vertex<ChangeId>, Edge> {
    let curs = self.cursor_graph(graph, Some((k, v)));
    curs
    }
    #[doc(hidden)]
    fn iter_graph_ref<RT: std::ops::Deref<Target = Self>>(
    txn: RT,
    graph: &Self::Graph,
    k: Vertex<ChangeId>,
    v: Option<Edge>,
    ) -> Cursor<Self, RT, Self::GraphCursor, Vertex<ChangeId>, Edge> {
    let curs = Self::cursor_graph_ref(txn, graph, Some((k, v)));
    curs
    }
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 208
    [17.600031][17.600031:600050]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 213
    [17.600187][17.600187:600206]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 218
    [17.600374][17.600374:600393]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 223
    [17.600564][17.600564:600583]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 227
    [17.600751][17.600751:605607]()
    #[doc(hidden)]
    fn changeid_log<'db, 'txn: 'db>(
    &'txn self,
    channel: &'db Channel<Self>,
    from: u64,
    ) -> Cursor<Self, &'txn Self, Self::RevchangesetCursor, u64, (ChangeId, Merkle)> {
    self.cursor_revchangeset(&channel.revchanges, Some((from, None)))
    }
    fn current_state<'db, 'txn: 'db>(&'txn self, channel: &'db Channel<Self>) -> Option<Merkle> {
    self.rev_cursor_revchangeset(&channel.revchanges, None)
    .next()
    .map(|(_, (_, m))| m)
    }
    #[doc(hidden)]
    fn changeid_log_ref<RT: std::ops::Deref<Target = Self>>(
    txn: RT,
    channel: &Channel<Self>,
    from: u64,
    ) -> Cursor<Self, RT, Self::RevchangesetCursor, u64, (ChangeId, Merkle)> {
    Self::cursor_revchangeset_ref(txn, &channel.revchanges, Some((from, None)))
    }
    #[doc(hidden)]
    fn changeid_rev_log<'db, 'txn: 'db>(
    &'txn self,
    channel: &'db Channel<Self>,
    from: Option<u64>,
    ) -> RevCursor<Self, &'txn Self, Self::RevchangesetCursor, u64, (ChangeId, Merkle)> {
    self.rev_cursor_revchangeset(&channel.revchanges, from.map(|from| (from, None)))
    }
    #[doc(hidden)]
    fn log_for_path<'txn, 'channel>(
    &'txn self,
    channel: &'channel Channel<Self>,
    key: Position<ChangeId>,
    from_timestamp: u64,
    ) -> PathChangeset<'channel, 'txn, Self> {
    PathChangeset {
    iter: self.cursor_revchangeset(&channel.revchanges, Some((from_timestamp, None))),
    txn: self,
    channel,
    key,
    }
    }
    #[doc(hidden)]
    fn rev_log_for_path<'txn, 'channel>(
    &'txn self,
    channel: &'channel Channel<Self>,
    key: Position<ChangeId>,
    from_timestamp: u64,
    ) -> RevPathChangeset<'channel, 'txn, Self> {
    RevPathChangeset {
    iter: self.rev_cursor_revchangeset(&channel.revchanges, Some((from_timestamp, None))),
    txn: self,
    channel,
    key,
    }
    }
    /// Is there an alive/pseudo edge from `a` to `b`.
    #[doc(hidden)]
    fn test_edge(
    &self,
    channel: &Channel<Self>,
    a: Position<ChangeId>,
    b: Position<ChangeId>,
    min: EdgeFlags,
    max: EdgeFlags,
    ) -> bool {
    debug!("is_connected {:?} {:?}", a, b);
    let key = Vertex {
    change: a.change,
    start: a.pos,
    end: a.pos,
    };
    let edge = Edge {
    flag: min,
    dest: b,
    introduced_by: ChangeId::ROOT,
    };
    let mut cursor = self.cursor_graph(&channel.graph, Some((key, Some(edge))));
    let (a_, b_) = cursor.next().unwrap();
    a_.change == a.change
    && a_.start <= a.pos
    && a_.end >= a.pos
    && b_.flag >= min
    && b_.flag <= max
    && b_.dest == b
    }
    /// Is there an alive/pseudo edge to `a`.
    #[doc(hidden)]
    fn is_alive_or_pseudo(&self, channel: &Channel<Self>, a: Vertex<ChangeId>) -> bool {
    a.is_root()
    || self
    .iter_adjacent(
    channel,
    a,
    EdgeFlags::PARENT,
    EdgeFlags::all() - EdgeFlags::DELETED,
    )
    .next()
    .is_some()
    }
    /// Is there an alive/pseudo edge to `a`.
    #[doc(hidden)]
    fn is_alive(&self, channel: &Channel<Self>, a: Vertex<ChangeId>) -> bool {
    a.is_root()
    || self
    .iter_adjacent(
    channel,
    a,
    EdgeFlags::PARENT,
    EdgeFlags::all() - EdgeFlags::DELETED,
    )
    .filter(|e| {
    e.flag.contains(EdgeFlags::FOLDER) || !e.flag.contains(EdgeFlags::PSEUDO)
    })
    .next()
    .is_some()
    }
    // org id aY8inFkVguxv2TAAh/FWE+cCIjp5Jj3P0m2rXHfKTtg=
    #[doc(hidden)]
    fn make_changeid(&self, h: &Hash) -> ChangeId {
    if let Some(h) = self.get_internal(*h) {
    return h;
    }
    use byteorder::{ByteOrder, LittleEndian};
    use rand::Rng;
    let mut p = match h {
    Hash::None => return ChangeId::ROOT,
    Hash::Blake3(ref s) => ChangeId(LittleEndian::read_u64(&s[..])),
    };
    while self.get_external(p).is_some() {
    p = ChangeId(rand::thread_rng().gen());
    }
    p
    }
    // org id fPNhuKxfbhMSEoBk5AN8BJbDzTyyY8utYN4ZfwRiivg=
    #[doc(hidden)]
    fn make_random_changeid(&self) -> ChangeId {
    use rand::Rng;
    let mut p = ChangeId(rand::thread_rng().gen());
    while self.get_external(p).is_some() {
    p = ChangeId(rand::thread_rng().gen());
    }
    p
    }
  • edit in libpijul/src/pristine/mod.rs at line 237
    [17.605898][17.605898:605917]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 258
    [17.606765][17.606765:607389]()
    // org id oGZWRYu9yo9VKkz4S9hipd5OpFx6kQiF5q/T9jSqp5A=
    /// Write the graph of a channel to file `f` in graphviz
    /// format. **Warning:** this can be really large on old channels.
    #[doc(hidden)]
    fn debug_to_file<P: AsRef<std::path::Path>>(
    &self,
    channel: &ChannelRef<Self>,
    f: P,
    ) -> Result<bool, anyhow::Error> {
    info!("debug {:?}", f.as_ref());
    let mut f = std::fs::File::create(f)?;
    let channel = channel.r.borrow();
    let done = self.debug(&channel, &mut f)?;
    f.flush()?;
    info!("done debugging {:?}", done);
    Ok(done)
  • edit in libpijul/src/pristine/mod.rs at line 258
    [17.606765]
    [17.607389]
    // #[cfg(debug_assertions)]
    cursor!(inodes, Inode, Position<ChangeId>);
    #[cfg(not(debug_assertions))]
    fn debug_inodes(&self) {}
    fn iter_inodes<'txn>(
    &'txn self,
    ) -> Cursor<Self, &'txn Self, Self::InodesCursor, Inode, Position<ChangeId>>;
    }
    /// Iterate the graph between `(key, min_flag)` and `(key,
    /// max_flag)`, where both bounds are included.
    pub(crate) fn iter_adjacent<'db, 'txn: 'db, T: TxnT>(
    txn: &'txn T,
    channel: &'db Channel<T>,
    key: Vertex<ChangeId>,
    min_flag: EdgeFlags,
    max_flag: EdgeFlags,
    ) -> AdjacentIterator<'txn, T> {
    let edge = Edge {
    flag: min_flag,
    dest: Position::ROOT,
    introduced_by: ChangeId::ROOT,
    };
    AdjacentIterator {
    it: iter_graph(txn, &channel.graph, key, Some(edge)),
    key,
    min_flag,
    max_flag,
  • edit in libpijul/src/pristine/mod.rs at line 289
    [17.607395]
    [17.607395]
    }
  • edit in libpijul/src/pristine/mod.rs at line 291
    [17.607396][17.607396:607771]()
    #[doc(hidden)]
    fn debug_tree<P: AsRef<std::path::Path>>(&self, file: P) -> Result<(), anyhow::Error> {
    let root = OwnedPathId {
    parent_inode: Inode::ROOT,
    basename: SmallString::from_str(""),
    };
    let mut f = std::fs::File::create(file)?;
    for t in self.iter_tree(root, None) {
    writeln!(f, "{:?}", t)?
  • edit in libpijul/src/pristine/mod.rs at line 291
    [17.607396]
    [17.607771]
    pub(crate) fn tree_path<T: TxnT>(txn: &T, v: Position<ChangeId>) -> Option<String> {
    if let Some(mut inode) = txn.get_revinodes(v, None) {
    let mut components = Vec::new();
    while !inode.is_root() {
    if let Some(next) = txn.get_revtree(inode, None) {
    components.push(next.basename.as_str().to_string());
    inode = next.parent_inode;
    } else {
    assert!(components.is_empty());
    return None;
    }
    }
    if let Some(mut result) = components.pop() {
    while let Some(c) = components.pop() {
    result = result + "/" + c.as_str()
    }
    Some(result)
    } else {
    None
  • edit in libpijul/src/pristine/mod.rs at line 311
    [17.607781][17.607781:607796]()
    Ok(())
  • edit in libpijul/src/pristine/mod.rs at line 311
    [17.607781]
    [17.607796]
    } else {
    None
  • edit in libpijul/src/pristine/mod.rs at line 314
    [17.607802]
    [17.607802]
    }
  • edit in libpijul/src/pristine/mod.rs at line 316
    [17.607803][17.607803:607822](),[17.607822][7.96:347]()
    #[doc(hidden)]
    fn debug_tree_print(&self) {
    let root = OwnedPathId {
    parent_inode: Inode::ROOT,
    basename: SmallString::from_str(""),
    };
    for t in self.iter_tree(root, None) {
    debug!("{:?}", t)
    }
  • edit in libpijul/src/pristine/mod.rs at line 316
    [17.607803]
    [7.347]
    pub(crate) fn internal<T: TxnT>(txn: &T, h: &Option<Hash>, p: ChangeId) -> Option<ChangeId> {
    match *h {
    Some(Hash::None) => Some(ChangeId::ROOT),
    Some(h) => txn.get_internal(h),
    None => Some(p),
  • edit in libpijul/src/pristine/mod.rs at line 322
    [7.353]
    [7.353]
    }
  • edit in libpijul/src/pristine/mod.rs at line 324
    [7.354][7.354:373](),[7.373][17.607822:608084](),[17.607822][17.607822:608084]()
    #[doc(hidden)]
    fn debug_revtree<P: AsRef<std::path::Path>>(&self, file: P) -> Result<(), anyhow::Error> {
    let mut f = std::fs::File::create(file)?;
    for t in self.iter_revtree(Inode::ROOT, None) {
    writeln!(f, "{:?}", t)?
    }
    Ok(())
  • edit in libpijul/src/pristine/mod.rs at line 324
    [7.354]
    [17.608084]
    pub(crate) fn internal_pos<T: TxnT>(
    txn: &T,
    pos: &Position<Option<Hash>>,
    change_id: ChangeId,
    ) -> Result<Position<ChangeId>, crate::Error> {
    Ok(Position {
    change: if let Some(p) = pos.change {
    if let Some(p) = txn.get_internal(p) {
    p
    } else {
    return Err(crate::Error::InconsistentChange);
    }
    } else {
    change_id
    },
    pos: pos.pos,
    })
    }
    pub(crate) fn iter_graph<'txn, T: TxnT>(
    txn: &'txn T,
    graph: &T::Graph,
    k: Vertex<ChangeId>,
    v: Option<Edge>,
    ) -> Cursor<T, &'txn T, T::GraphCursor, Vertex<ChangeId>, Edge> {
    let curs = txn.cursor_graph(graph, Some((k, v)));
    curs
    }
    pub(crate) fn iter_graph_ref<T: TxnT, RT: std::ops::Deref<Target = T>>(
    txn: RT,
    graph: &T::Graph,
    k: Vertex<ChangeId>,
    v: Option<Edge>,
    ) -> Cursor<T, RT, T::GraphCursor, Vertex<ChangeId>, Edge> {
    let curs = T::cursor_graph_ref(txn, graph, Some((k, v)));
    curs
    }
    pub(crate) fn changeid_log<'db, 'txn: 'db, T: TxnT>(
    txn: &'txn T,
    channel: &'db Channel<T>,
    from: u64,
    ) -> Cursor<T, &'txn T, T::RevchangesetCursor, u64, (ChangeId, Merkle)> {
    txn.cursor_revchangeset(&channel.revchanges, Some((from, None)))
    }
    pub(crate) fn current_state<'db, 'txn: 'db, T: TxnT>(
    txn: &'txn T,
    channel: &'db Channel<T>,
    ) -> Option<Merkle> {
    txn.rev_cursor_revchangeset(&channel.revchanges, None)
    .next()
    .map(|(_, (_, m))| m)
    }
    pub(crate) fn changeid_log_ref<T: TxnT, RT: std::ops::Deref<Target = T>>(
    txn: RT,
    channel: &Channel<T>,
    from: u64,
    ) -> Cursor<T, RT, T::RevchangesetCursor, u64, (ChangeId, Merkle)> {
    T::cursor_revchangeset_ref(txn, &channel.revchanges, Some((from, None)))
    }
    pub(crate) fn changeid_rev_log<'db, 'txn: 'db, T: TxnT>(
    txn: &'txn T,
    channel: &'db Channel<T>,
    from: Option<u64>,
    ) -> RevCursor<T, &'txn T, T::RevchangesetCursor, u64, (ChangeId, Merkle)> {
    txn.rev_cursor_revchangeset(&channel.revchanges, from.map(|from| (from, None)))
    }
    pub(crate) fn log_for_path<'txn, 'channel, T: TxnT>(
    txn: &'txn T,
    channel: &'channel Channel<T>,
    key: Position<ChangeId>,
    from_timestamp: u64,
    ) -> PathChangeset<'channel, 'txn, T> {
    PathChangeset {
    iter: txn.cursor_revchangeset(&channel.revchanges, Some((from_timestamp, None))),
    txn,
    channel,
    key,
  • edit in libpijul/src/pristine/mod.rs at line 408
    [17.608090]
    [17.608090]
    }
  • edit in libpijul/src/pristine/mod.rs at line 410
    [17.608091][7.374:525]()
    #[doc(hidden)]
    fn debug_revtree_print(&self) {
    for t in self.iter_revtree(Inode::ROOT, None) {
    debug!("{:?}", t)
    }
  • edit in libpijul/src/pristine/mod.rs at line 410
    [17.608091]
    [7.525]
    pub(crate) fn rev_log_for_path<'txn, 'channel, T: TxnT>(
    txn: &'txn T,
    channel: &'channel Channel<T>,
    key: Position<ChangeId>,
    from_timestamp: u64,
    ) -> RevPathChangeset<'channel, 'txn, T> {
    RevPathChangeset {
    iter: txn.rev_cursor_revchangeset(&channel.revchanges, Some((from_timestamp, None))),
    txn,
    channel,
    key,
  • edit in libpijul/src/pristine/mod.rs at line 422
    [7.531]
    [7.531]
    }
  • edit in libpijul/src/pristine/mod.rs at line 424
    [7.532][17.608091:608171](),[17.608091][17.608091:608171]()
    // #[cfg(debug_assertions)]
    cursor!(inodes, Inode, Position<ChangeId>);
  • edit in libpijul/src/pristine/mod.rs at line 424
    [7.532]
    [17.608171]
    /// Is there an alive/pseudo edge from `a` to `b`.
    pub(crate) fn test_edge<T: TxnT>(
    txn: &T,
    channel: &Channel<T>,
    a: Position<ChangeId>,
    b: Position<ChangeId>,
    min: EdgeFlags,
    max: EdgeFlags,
    ) -> bool {
    debug!("is_connected {:?} {:?}", a, b);
    let key = Vertex {
    change: a.change,
    start: a.pos,
    end: a.pos,
    };
    let edge = Edge {
    flag: min,
    dest: b,
    introduced_by: ChangeId::ROOT,
    };
    let mut cursor = txn.cursor_graph(&channel.graph, Some((key, Some(edge))));
    let (a_, b_) = cursor.next().unwrap();
    a_.change == a.change
    && a_.start <= a.pos
    && a_.end >= a.pos
    && b_.flag >= min
    && b_.flag <= max
    && b_.dest == b
    }
    /// Is there an alive/pseudo edge to `a`.
    pub(crate) fn is_alive<T: TxnT>(txn: &T, channel: &Channel<T>, a: Vertex<ChangeId>) -> bool {
    a.is_root()
    || iter_adjacent(
    txn,
    channel,
    a,
    EdgeFlags::PARENT,
    EdgeFlags::all() - EdgeFlags::DELETED,
    )
    .filter(|e| e.flag.contains(EdgeFlags::BLOCK) || e.flag.contains(EdgeFlags::FOLDER))
    .next()
    .is_some()
    }
  • edit in libpijul/src/pristine/mod.rs at line 469
    [17.608172][17.608172:608586]()
    #[doc(hidden)]
    // #[cfg(debug_assertions)]
    fn iter_inodes<'txn>(
    &'txn self,
    ) -> Cursor<Self, &'txn Self, Self::InodesCursor, Inode, Position<ChangeId>>;
    #[cfg(debug_assertions)]
    #[doc(hidden)]
    fn debug_inodes(&self) {
    debug!("debug_inodes");
    for t in self.iter_inodes() {
    debug!("debug_inodes = {:?}", t)
    }
    debug!("/debug_inodes");
  • edit in libpijul/src/pristine/mod.rs at line 469
    [17.608172]
    [17.608586]
    pub(crate) fn make_changeid<T: TxnT>(txn: &T, h: &Hash) -> ChangeId {
    if let Some(h) = txn.get_internal(*h) {
    return h;
    }
    use byteorder::{ByteOrder, LittleEndian};
    use rand::Rng;
    let mut p = match h {
    Hash::None => return ChangeId::ROOT,
    Hash::Blake3(ref s) => ChangeId(LittleEndian::read_u64(&s[..])),
    };
    while txn.get_external(p).is_some() {
    p = ChangeId(rand::thread_rng().gen());
  • edit in libpijul/src/pristine/mod.rs at line 482
    [17.608592]
    [17.608592]
    p
    }
  • edit in libpijul/src/pristine/mod.rs at line 485
    [17.608593][17.608593:608676]()
    #[cfg(not(debug_assertions))]
    #[doc(hidden)]
    fn debug_inodes(&self) {}
  • edit in libpijul/src/pristine/mod.rs at line 485
    [17.608593]
    [17.608676]
    #[cfg(debug_assertions)]
    pub fn debug_tree<P: AsRef<std::path::Path>, T: TxnT>(
    txn: &T,
    file: P,
    ) -> Result<(), anyhow::Error> {
    let root = OwnedPathId {
    parent_inode: Inode::ROOT,
    basename: SmallString::from_str(""),
    };
    let mut f = std::fs::File::create(file)?;
    for t in txn.iter_tree(root, None) {
    writeln!(f, "{:?}", t)?
    }
    Ok(())
    }
  • edit in libpijul/src/pristine/mod.rs at line 501
    [17.608677][17.608677:609454]()
    /// Write the graph of a channel to write `W` in graphviz
    /// format. **Warning:** this can be really large on old channels.
    #[doc(hidden)]
    fn debug<W: Write>(&self, channel: &Channel<Self>, mut f: W) -> Result<bool, anyhow::Error> {
    let mut cursor = self.cursor_graph(&channel.graph, None);
    writeln!(f, "digraph {{")?;
    let mut keys = std::collections::HashSet::new();
    let mut at_least_one = false;
    while let Some((k, v)) = cursor.next() {
    at_least_one = true;
    debug!("debug {:?} {:?}", k, v);
    if keys.insert(k) {
    debug_vertex(&mut f, k)?
    }
    debug_edge(self, channel, &mut f, k, v)?
    }
    writeln!(f, "}}")?;
    Ok(at_least_one)
  • edit in libpijul/src/pristine/mod.rs at line 501
    [17.608677]
    [17.609454]
    #[cfg(debug_assertions)]
    pub fn debug_tree_print<T: TxnT>(txn: &T) {
    let root = OwnedPathId {
    parent_inode: Inode::ROOT,
    basename: SmallString::from_str(""),
    };
    for t in txn.iter_tree(root, None) {
    debug!("{:?}", t)
  • edit in libpijul/src/pristine/mod.rs at line 510
    [17.609460]
    [17.609460]
    }
  • edit in libpijul/src/pristine/mod.rs at line 512
    [17.609461][17.609461:610454]()
    #[doc(hidden)]
    fn check_channel_log(&self, channel: &ChannelRef<Self>) {
    let channel = channel.r.borrow();
    for (t, (ch, _)) in self.cursor_revchangeset(&channel.revchanges, None) {
    if self.get_changeset(&channel.changes, ch, None) != Some(t) {
    panic!(
    "ch = {:?}, {:?}, t = {:?}",
    ch,
    self.get_changeset(&channel.changes, ch, None),
    Some(t)
    );
    }
    }
    for (ch, t) in self.cursor_changeset(&channel.changes, None) {
    if self
    .get_revchangeset(&channel.revchanges, t, None)
    .unwrap()
    .0
    != ch
    {
    panic!(
    "t = {:?}, {:?}, ch = {:?}",
    t,
    self.get_revchangeset(&channel.revchanges, t, None),
    Some(ch)
    );
    }
    }
  • edit in libpijul/src/pristine/mod.rs at line 512
    [17.609461]
    [17.610454]
    // org id oGZWRYu9yo9VKkz4S9hipd5OpFx6kQiF5q/T9jSqp5A=
    /// Write the graph of a channel to file `f` in graphviz
    /// format. **Warning:** this can be really large on old channels.
    #[cfg(debug_assertions)]
    pub fn debug_to_file<P: AsRef<std::path::Path>, T: TxnT>(
    txn: &T,
    channel: &ChannelRef<T>,
    f: P,
    ) -> Result<bool, anyhow::Error> {
    info!("debug {:?}", f.as_ref());
    let mut f = std::fs::File::create(f)?;
    let channel = channel.r.borrow();
    let done = debug(txn, &channel, &mut f)?;
    f.flush()?;
    info!("done debugging {:?}", done);
    Ok(done)
    }
    #[cfg(debug_assertions)]
    pub fn debug_revtree<P: AsRef<std::path::Path>, T: TxnT>(
    txn: &T,
    file: P,
    ) -> Result<(), anyhow::Error> {
    let mut f = std::fs::File::create(file)?;
    for t in txn.iter_revtree(Inode::ROOT, None) {
    writeln!(f, "{:?}", t)?
  • edit in libpijul/src/pristine/mod.rs at line 539
    [17.610460]
    [17.610460]
    Ok(())
    }
  • edit in libpijul/src/pristine/mod.rs at line 542
    [17.610461][17.610461:611449]()
    #[doc(hidden)]
    fn check_tree_revtree(&self) {
    let zero = OwnedPathId {
    parent_inode: Inode::ROOT,
    basename: SmallString::new(),
    };
    for (a, b) in self.iter_tree(zero, None) {
    if !a.basename.is_empty() {
    assert_eq!(
    self.get_revtree(b, Some(a.as_file_id())),
    Some(a.as_file_id())
    )
    }
    }
    let mut inodes = Vec::new();
    for (a, b) in self.iter_revtree(Inode::ROOT, None) {
    inodes.clear();
    for (c, d) in self.iter_tree(b.clone(), None) {
    if c > b {
    break;
    } else if c < b {
    continue;
    }
    if d == a {
    inodes.push(d)
    }
    }
    if inodes.len() > 1 {
    panic!("inodes for {:?} {:?} = {:?}", a, b, inodes);
    }
    }
  • edit in libpijul/src/pristine/mod.rs at line 542
    [17.610461]
    [17.611449]
    #[cfg(debug_assertions)]
    pub fn debug_revtree_print<T: TxnT>(txn: &T) {
    for t in txn.iter_revtree(Inode::ROOT, None) {
    debug!("{:?}", t)
  • edit in libpijul/src/pristine/mod.rs at line 547
    [17.611455]
    [17.611455]
    }
  • edit in libpijul/src/pristine/mod.rs at line 549
    [17.611456][17.611456:611727]()
    #[doc(hidden)]
    fn check_alive(
    &self,
    channel: &ChannelRef<Self>,
    ) -> (
    HashMap<Vertex<ChangeId>, Option<Vertex<ChangeId>>>,
    Vec<(Vertex<ChangeId>, Option<Vertex<ChangeId>>)>,
    ) {
    let channel = channel.r.borrow();
  • edit in libpijul/src/pristine/mod.rs at line 549
    [17.611456]
    [17.611727]
    #[cfg(debug_assertions)]
    pub fn debug_inodes<T: TxnT>(txn: &T) {
    debug!("debug_inodes");
    for t in txn.iter_inodes() {
    debug!("debug_inodes = {:?}", t)
    }
    debug!("/debug_inodes");
    }
  • edit in libpijul/src/pristine/mod.rs at line 558
    [17.611728][17.611728:612277]()
    // Find the reachable with a DFS.
    let mut reachable = HashSet::new();
    let mut stack = vec![Vertex::ROOT];
    while let Some(v) = stack.pop() {
    if !reachable.insert(v) {
    continue;
    }
    for e in self.iter_adjacent(
    &channel,
    v,
    EdgeFlags::empty(),
    EdgeFlags::all() - EdgeFlags::DELETED - EdgeFlags::PARENT,
    ) {
    stack.push(self.find_block(&channel, e.dest).unwrap());
    }
  • edit in libpijul/src/pristine/mod.rs at line 558
    [17.611728]
    [17.612277]
    /// Write the graph of a channel to write `W` in graphviz
    /// format. **Warning:** this can be really large on old channels.
    #[cfg(debug_assertions)]
    pub fn debug<W: Write, T: TxnT>(
    txn: &T,
    channel: &Channel<T>,
    mut f: W,
    ) -> Result<bool, anyhow::Error> {
    let mut cursor = txn.cursor_graph(&channel.graph, None);
    writeln!(f, "digraph {{")?;
    let mut keys = std::collections::HashSet::new();
    let mut at_least_one = false;
    while let Some((k, v)) = cursor.next() {
    at_least_one = true;
    debug!("debug {:?} {:?}", k, v);
    if keys.insert(k) {
    debug_vertex(&mut f, k)?
  • edit in libpijul/src/pristine/mod.rs at line 576
    [17.612287][17.612287:612335]()
    debug!("reachable = {:#?}", reachable);
  • edit in libpijul/src/pristine/mod.rs at line 576
    [17.612287]
    [17.612335]
    debug_edge(txn, channel, &mut f, k, v)?
    }
    writeln!(f, "}}")?;
    Ok(at_least_one)
    }
  • edit in libpijul/src/pristine/mod.rs at line 582
    [17.612336][17.612336:613571]()
    // Find the alive
    let mut alive_unreachable = HashMap::new();
    let mut cursor = self.cursor_graph(&channel.graph, None);
    let mut visited = HashSet::new();
    let mut k0 = Vertex::ROOT;
    let mut k0_has_pseudo_parents = false;
    let mut k0_has_regular_parents = false;
    let mut reachable_pseudo = Vec::new();
    while let Some((k, v)) = cursor.next() {
    debug!("check_alive, k = {:?}, v = {:?}", k, v);
    if k0 != k {
    if k0_has_pseudo_parents && !k0_has_regular_parents {
    reachable_pseudo
    .push((k0, self.find_file(&channel, k0, &mut stack, &mut visited)))
    }
    k0 = k;
    k0_has_pseudo_parents = false;
    k0_has_regular_parents = false;
    }
    if v.flag.contains(EdgeFlags::PARENT)
    && !v.flag.contains(EdgeFlags::FOLDER)
    && !v.flag.contains(EdgeFlags::DELETED)
    {
    if v.flag.contains(EdgeFlags::PSEUDO) {
    k0_has_pseudo_parents = true
    } else {
    k0_has_regular_parents = true
    }
    }
  • edit in libpijul/src/pristine/mod.rs at line 582
    [17.612336]
    [17.613571]
    #[cfg(test)]
    pub fn check_alive<T: TxnT>(
    txn: &T,
    channel: &ChannelRef<T>,
    ) -> (
    HashMap<Vertex<ChangeId>, Option<Vertex<ChangeId>>>,
    Vec<(Vertex<ChangeId>, Option<Vertex<ChangeId>>)>,
    ) {
    let channel = channel.r.borrow();
  • edit in libpijul/src/pristine/mod.rs at line 592
    [17.613572][17.613572:613882]()
    if v.flag.contains(EdgeFlags::PARENT) && !v.flag.contains(EdgeFlags::DELETED) {
    if !reachable.contains(&k) {
    let file = self.find_file(&channel, k, &mut stack, &mut visited);
    alive_unreachable.insert(k, file);
    }
    }
  • edit in libpijul/src/pristine/mod.rs at line 592
    [17.613572]
    [17.613882]
    // Find the reachable with a DFS.
    let mut reachable = HashSet::new();
    let mut stack = vec![Vertex::ROOT];
    while let Some(v) = stack.pop() {
    if !reachable.insert(v) {
    continue;
  • edit in libpijul/src/pristine/mod.rs at line 599
    [17.613892][17.613892:614068]()
    if !k0.is_root() && k0_has_pseudo_parents && !k0_has_regular_parents {
    reachable_pseudo.push((k0, self.find_file(&channel, k0, &mut stack, &mut visited)));
  • edit in libpijul/src/pristine/mod.rs at line 599
    [17.613892]
    [17.614068]
    for e in iter_adjacent(
    txn,
    &channel,
    v,
    EdgeFlags::empty(),
    EdgeFlags::all() - EdgeFlags::DELETED - EdgeFlags::PARENT,
    ) {
    stack.push(find_block(txn, &channel, e.dest).unwrap());
  • edit in libpijul/src/pristine/mod.rs at line 608
    [17.614078][17.614078:614125]()
    (alive_unreachable, reachable_pseudo)
  • edit in libpijul/src/pristine/mod.rs at line 609
    [17.614131]
    [17.614131]
    debug!("reachable = {:#?}", reachable);
  • edit in libpijul/src/pristine/mod.rs at line 611
    [17.614132][17.614132:614588]()
    #[doc(hidden)]
    fn find_file(
    &self,
    channel: &Channel<Self>,
    k: Vertex<ChangeId>,
    stack: &mut Vec<Vertex<ChangeId>>,
    visited: &mut HashSet<Vertex<ChangeId>>,
    ) -> Option<Vertex<ChangeId>> {
    let mut file = None;
    stack.clear();
    stack.push(k);
    visited.clear();
    'outer: while let Some(kk) = stack.pop() {
    if !visited.insert(kk) {
    continue;
  • edit in libpijul/src/pristine/mod.rs at line 611
    [17.614132]
    [17.614588]
    // Find the alive
    let mut alive_unreachable = HashMap::new();
    let mut cursor = txn.cursor_graph(&channel.graph, None);
    let mut visited = HashSet::new();
    let mut k0 = Vertex::ROOT;
    let mut k0_has_pseudo_parents = false;
    let mut k0_has_regular_parents = false;
    let mut reachable_pseudo = Vec::new();
    while let Some((k, v)) = cursor.next() {
    debug!("check_alive, k = {:?}, v = {:?}", k, v);
    if k0 != k {
    if k0_has_pseudo_parents && !k0_has_regular_parents {
    reachable_pseudo.push((k0, find_file(txn, &channel, k0, &mut stack, &mut visited)))
  • edit in libpijul/src/pristine/mod.rs at line 625
    [17.614602][17.614602:615010]()
    for e in self.iter_adjacent(&channel, kk, EdgeFlags::PARENT, EdgeFlags::all()) {
    if e.flag.contains(EdgeFlags::PARENT) {
    if e.flag.contains(EdgeFlags::FOLDER) {
    file = Some(kk);
    break 'outer;
    }
    stack.push(self.find_block_end(&channel, e.dest).unwrap());
    }
  • edit in libpijul/src/pristine/mod.rs at line 625
    [17.614602]
    [17.615010]
    k0 = k;
    k0_has_pseudo_parents = false;
    k0_has_regular_parents = false;
    }
    if v.flag.contains(EdgeFlags::PARENT)
    && !v.flag.contains(EdgeFlags::FOLDER)
    && !v.flag.contains(EdgeFlags::DELETED)
    {
    if v.flag.contains(EdgeFlags::PSEUDO) {
    k0_has_pseudo_parents = true
    } else {
    k0_has_regular_parents = true
  • edit in libpijul/src/pristine/mod.rs at line 639
    [17.615034][17.615034:615053]()
    file
    }
  • edit in libpijul/src/pristine/mod.rs at line 640
    [17.615054][17.615054:615566]()
    #[doc(hidden)]
    fn debug_root<W: Write>(
    &self,
    channel: &ChannelRef<Self>,
    root: Vertex<ChangeId>,
    mut f: W,
    ) -> Result<(), anyhow::Error> {
    let channel = channel.r.borrow();
    writeln!(f, "digraph {{")?;
    // Find the reachable with a DFS.
    let mut visited = HashSet::new();
    let mut stack = vec![(root, false)];
    while let Some((v, is_going_up)) = stack.pop() {
    if !visited.insert(v) {
    continue;
  • edit in libpijul/src/pristine/mod.rs at line 640
    [17.615054]
    [17.615566]
    if v.flag.contains(EdgeFlags::PARENT) && !v.flag.contains(EdgeFlags::DELETED) {
    if !reachable.contains(&k) {
    let file = find_file(txn, &channel, k, &mut stack, &mut visited);
    alive_unreachable.insert(k, file);
  • edit in libpijul/src/pristine/mod.rs at line 645
    [17.615580][17.615580:616199]()
    debug_vertex(&mut f, v)?;
    for e in self.iter_adjacent(&channel, v, EdgeFlags::empty(), EdgeFlags::all()) {
    if e.flag.contains(EdgeFlags::PARENT) {
    debug_edge(self, &channel, &mut f, v, e)?;
    let v = self.find_block_end(&channel, e.dest).unwrap();
    stack.push((v, e.flag.contains(EdgeFlags::FOLDER)));
    } else if !is_going_up {
    debug_edge(self, &channel, &mut f, v, e)?;
    let v = self.find_block(&channel, e.dest).unwrap();
    stack.push((v, false));
  • edit in libpijul/src/pristine/mod.rs at line 645
    [17.615580]
    [17.616199]
    }
    }
    if !k0.is_root() && k0_has_pseudo_parents && !k0_has_regular_parents {
    reachable_pseudo.push((k0, find_file(txn, &channel, k0, &mut stack, &mut visited)));
    }
    (alive_unreachable, reachable_pseudo)
    }
    #[cfg(test)]
    fn find_file<T: TxnT>(
    txn: &T,
    channel: &Channel<T>,
    k: Vertex<ChangeId>,
    stack: &mut Vec<Vertex<ChangeId>>,
    visited: &mut HashSet<Vertex<ChangeId>>,
    ) -> Option<Vertex<ChangeId>> {
    let mut file = None;
    stack.clear();
    stack.push(k);
    visited.clear();
    'outer: while let Some(kk) = stack.pop() {
    if !visited.insert(kk) {
    continue;
    }
    for e in iter_adjacent(txn, &channel, kk, EdgeFlags::PARENT, EdgeFlags::all()) {
    if e.flag.contains(EdgeFlags::PARENT) {
    if e.flag.contains(EdgeFlags::FOLDER) {
    file = Some(kk);
    break 'outer;
  • edit in libpijul/src/pristine/mod.rs at line 676
    [17.616217]
    [17.616217]
    stack.push(find_block_end(txn, &channel, e.dest).unwrap());
  • edit in libpijul/src/pristine/mod.rs at line 679
    [17.616241][17.616241:616284]()
    writeln!(f, "}}")?;
    Ok(())
  • edit in libpijul/src/pristine/mod.rs at line 680
    [17.616290]
    [17.616290]
    file
    }
  • edit in libpijul/src/pristine/mod.rs at line 683
    [17.616291][17.616291:617089]()
    #[doc(hidden)]
    fn debug_root_rev<W: Write>(
    &self,
    channel: &Channel<Self>,
    root: Vertex<ChangeId>,
    mut f: W,
    ) -> Result<(), anyhow::Error> {
    writeln!(f, "digraph {{")?;
    let mut visited = HashSet::new();
    let mut stack = vec![root];
    while let Some(v) = stack.pop() {
    if !visited.insert(v) {
    continue;
    }
    debug_vertex(&mut f, v)?;
    for e in self.iter_adjacent(&channel, v, EdgeFlags::empty(), EdgeFlags::all()) {
    if e.flag.contains(EdgeFlags::PARENT) {
    debug_edge(self, &channel, &mut f, v, e)?;
    let v = self.find_block_end(&channel, e.dest).unwrap();
    stack.push(v);
    }
  • edit in libpijul/src/pristine/mod.rs at line 683
    [17.616291]
    [17.617089]
    pub(crate) fn debug_root_rev<W: Write, T: TxnT>(
    txn: &T,
    channel: &Channel<T>,
    root: Vertex<ChangeId>,
    mut f: W,
    ) -> Result<(), anyhow::Error> {
    writeln!(f, "digraph {{")?;
    let mut visited = HashSet::new();
    let mut stack = vec![root];
    while let Some(v) = stack.pop() {
    if !visited.insert(v) {
    continue;
    }
    debug_vertex(&mut f, v)?;
    for e in iter_adjacent(txn, &channel, v, EdgeFlags::empty(), EdgeFlags::all()) {
    if e.flag.contains(EdgeFlags::PARENT) {
    debug_edge(txn, &channel, &mut f, v, e)?;
    let v = find_block_end(txn, &channel, e.dest).unwrap();
    stack.push(v);
  • edit in libpijul/src/pristine/mod.rs at line 704
    [17.617113][17.617113:617156]()
    writeln!(f, "}}")?;
    Ok(())
  • edit in libpijul/src/pristine/mod.rs at line 705
    [17.617162]
    [17.617162]
    writeln!(f, "}}")?;
    Ok(())
  • edit in libpijul/src/pristine/mod.rs at line 752
    [17.618252][17.618252:618309]()
    txn.find_block_end(channel, v.dest).unwrap()
  • edit in libpijul/src/pristine/mod.rs at line 752
    [17.618252]
    [17.618309]
    find_block_end(txn, channel, v.dest).unwrap()
  • edit in libpijul/src/pristine/mod.rs at line 777
    [17.618942][17.618942:619006]()
    } else if let Ok(dest) = txn.find_block(&channel, v.dest) {
  • edit in libpijul/src/pristine/mod.rs at line 777
    [17.618942]
    [17.619006]
    } else if let Ok(dest) = find_block(txn, &channel, v.dest) {
  • edit in libpijul/src/pristine/mod.rs at line 831
    [17.620373][17.620373:620388]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 837
    [17.620582][17.620582:620597]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 859
    [17.621645][17.621645:621660]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 961
    [17.624898][17.624898:624934]()
    for p in txn.iter_adjacent(
  • edit in libpijul/src/pristine/mod.rs at line 961
    [17.624898]
    [17.624934]
    for p in iter_adjacent(
    txn,
  • edit in libpijul/src/pristine/mod.rs at line 969
    [17.625167][17.625167:625279]()
    let parent = txn.find_block_end(channel, p.dest).unwrap();
    for pp in txn.iter_adjacent(
  • edit in libpijul/src/pristine/mod.rs at line 969
    [17.625167]
    [17.625279]
    let parent = find_block_end(txn, channel, p.dest).unwrap();
    for pp in iter_adjacent(
    txn,
  • edit in libpijul/src/pristine/mod.rs at line 1040
    [17.627472][17.627472:627492](),[17.628066][17.628066:628320]()
    #[doc(hidden)]
    fn put_inodes_with_rev(
    &mut self,
    inode: Inode,
    position: Position<ChangeId>,
    ) -> Result<(), anyhow::Error> {
    self.put_inodes(inode, position)?;
    self.put_revinodes(position, inode)?;
    Ok(())
    }
  • edit in libpijul/src/pristine/mod.rs at line 1041
    [17.628321][17.628321:628973]()
    #[doc(hidden)]
    fn del_inodes_with_rev(
    &mut self,
    inode: Inode,
    position: Position<ChangeId>,
    ) -> Result<(), anyhow::Error> {
    self.del_inodes(inode, None)?;
    self.del_revinodes(position, None)?;
    Ok(())
    }
    #[doc(hidden)]
    fn del_tree_with_rev(&mut self, inode: Inode) -> Result<(), anyhow::Error> {
    if let Some(parent) = self.get_revtree(inode, None) {
    let parent = parent.to_owned();
    assert!(self.del_tree(parent.as_file_id(), Some(inode))?);
    assert!(self.del_revtree(inode, Some(parent.as_file_id()))?);
    }
    Ok(())
    }
  • edit in libpijul/src/pristine/mod.rs at line 1042
    [17.629121][17.629121:629140]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 1050
    [17.629401][17.629401:629420]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 1058
    [17.629778][17.629778:629797]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 1067
    [17.630097][17.630097:630116]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 1102
    [17.631580][17.631580:636462]()
    // Provided methods
    /// Split a key `[a, b[` at position `pos`, yielding two keys `[a,
    /// pos[` and `[pos, b[` linked by an edge.
    #[doc(hidden)]
    fn split_block<'db, 'txn: 'db>(
    &'txn mut self,
    channel: &'db mut Channel<Self>,
    key: Vertex<ChangeId>,
    pos: ChangePosition,
    ) -> Result<(), anyhow::Error> {
    trace!("key = {:?}, pos = {:?}", key, pos);
    let adjacent: Vec<_> = self
    .cursor_graph(&channel.graph, Some((key, None)))
    .take_while(|&(k, _)| k <= key)
    .filter(|&(k, _)| k == key)
    .map(|(_, e)| e)
    .collect();
    debug!("adjacent {:?}", adjacent);
    for chi in adjacent {
    assert!(chi.introduced_by != ChangeId::ROOT || chi.flag.contains(EdgeFlags::PSEUDO));
    if chi.flag.contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) {
    self.put_graph_with_rev(
    channel,
    chi.flag - EdgeFlags::PARENT,
    Vertex {
    change: key.change,
    start: key.start,
    end: pos,
    },
    Vertex {
    change: key.change,
    start: pos,
    end: key.end,
    },
    chi.introduced_by,
    )?;
    }
    self.del_graph(&mut channel.graph, key, Some(chi))?;
    self.put_graph(
    &mut channel.graph,
    if chi.flag.contains(EdgeFlags::PARENT) {
    Vertex {
    change: key.change,
    start: key.start,
    end: pos,
    }
    } else {
    Vertex {
    change: key.change,
    start: pos,
    end: key.end,
    }
    },
    chi,
    )?;
    }
    Ok(())
    }
    #[doc(hidden)]
    fn del_graph_with_rev(
    &mut self,
    channel: &mut Channel<Self>,
    mut flag: EdgeFlags,
    mut k0: Vertex<ChangeId>,
    mut k1: Vertex<ChangeId>,
    introduced_by: ChangeId,
    ) -> Result<bool, anyhow::Error> {
    if flag.contains(EdgeFlags::PARENT) {
    std::mem::swap(&mut k0, &mut k1);
    flag -= EdgeFlags::PARENT
    }
    debug!("del_graph_with_rev {:?} {:?} {:?}", flag, k0, k1);
    let a = self.del_graph(
    &mut channel.graph,
    k0,
    Some(Edge {
    flag: flag,
    dest: Position {
    change: k1.change,
    pos: k1.start,
    },
    introduced_by,
    }),
    )?;
    let b = self.del_graph(
    &mut channel.graph,
    k1,
    Some(Edge {
    flag: flag | EdgeFlags::PARENT,
    dest: Position {
    change: k0.change,
    pos: k0.end,
    },
    introduced_by,
    }),
    )?;
    assert!((a && b) || (!a && !b));
    Ok(a && b)
    }
    #[doc(hidden)]
    fn put_graph_with_rev(
    &mut self,
    channel: &mut Channel<Self>,
    flag: EdgeFlags,
    k0: Vertex<ChangeId>,
    k1: Vertex<ChangeId>,
    introduced_by: ChangeId,
    ) -> Result<bool, anyhow::Error> {
    debug_assert!(!flag.contains(EdgeFlags::PARENT));
    if k0.change == k1.change {
    assert_ne!(k0.start_pos(), k1.start_pos());
    }
    if introduced_by == ChangeId::ROOT {
    assert!(flag.contains(EdgeFlags::PSEUDO));
    }
    debug!("put_graph_with_rev {:?} {:?} {:?}", k0, k1, flag);
    let a = self.put_graph(
    &mut channel.graph,
    k0,
    Edge {
    flag: flag,
    dest: Position {
    change: k1.change,
    pos: k1.start,
    },
    introduced_by,
    },
    )?;
    let b = self.put_graph(
    &mut channel.graph,
    k1,
    Edge {
    flag: flag ^ EdgeFlags::PARENT,
    dest: Position {
    change: k0.change,
    pos: k0.end,
    },
    introduced_by,
    },
    )?;
    if flag.contains(EdgeFlags::FOLDER) {
    if !((k0.len() == 0 && k1.len() > 2) || (k0.len() > 2 && k1.len() == 0)) {
    let mut f = std::fs::File::create("folder_debug")?;
    self.debug(channel, &mut f)?;
    panic!("{:?} {:?}", k0, k1);
    }
    }
    assert!((a && b) || (!a && !b));
    Ok(a && b)
    }
  • edit in libpijul/src/pristine/mod.rs at line 1103
    [17.636463][17.636463:637894]()
    #[doc(hidden)]
    fn register_change(
    &mut self,
    internal: ChangeId,
    hash: Hash,
    change: &Change,
    ) -> Result<(), anyhow::Error> {
    self.put_external(internal, hash)?;
    self.put_internal(hash, internal)?;
    for dep in change.dependencies.iter() {
    debug!(target:"libpijul::register_change", "dep = {:?}", dep);
    let dep_internal = self.get_internal(*dep).unwrap();
    debug!(target:"libpijul::register_change", "{:?} depends on {:?}", internal, dep_internal);
    self.put_revdep(dep_internal, internal)?;
    self.put_dep(internal, dep_internal)?;
    }
    for hunk in change.changes.iter().flat_map(|r| r.iter()) {
    let inode = match *hunk {
    Atom::NewVertex(NewVertex { ref inode, .. }) => inode,
    Atom::EdgeMap(EdgeMap { ref inode, .. }) => inode,
    };
    let inode = Position {
    change: inode
    .change
    .and_then(|change| self.get_internal(change))
    .unwrap_or(internal),
    pos: inode.pos,
    };
    debug!(target:"libpijul::register_change", "touched: {:?} {:?}", inode, internal);
    self.put_touched_files(inode, internal)?;
    self.put_rev_touched_files(internal, inode)?;
    }
    Ok(())
    }
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 1105
    [17.637990][17.637990:638009]()
    #[doc(hidden)]
  • edit in libpijul/src/pristine/mod.rs at line 1125
    [17.638668]
    [17.638668]
    }
    pub(crate) fn put_inodes_with_rev<T: MutTxnT>(
    txn: &mut T,
    inode: Inode,
    position: Position<ChangeId>,
    ) -> Result<(), anyhow::Error> {
    txn.put_inodes(inode, position)?;
    txn.put_revinodes(position, inode)?;
    Ok(())
    }
    /// Split a key `[a, b[` at position `pos`, yielding two keys `[a,
    /// pos[` and `[pos, b[` linked by an edge.
    pub(crate) fn split_block<T: MutTxnT>(
    txn: &mut T,
    channel: &mut Channel<T>,
    key: Vertex<ChangeId>,
    pos: ChangePosition,
    ) -> Result<(), anyhow::Error> {
    trace!("key = {:?}, pos = {:?}", key, pos);
    let adjacent: Vec<_> = txn
    .cursor_graph(&channel.graph, Some((key, None)))
    .take_while(|&(k, _)| k <= key)
    .filter(|&(k, _)| k == key)
    .map(|(_, e)| e)
    .collect();
    debug!("adjacent {:?}", adjacent);
    for chi in adjacent {
    assert!(chi.introduced_by != ChangeId::ROOT || chi.flag.contains(EdgeFlags::PSEUDO));
    if chi.flag.contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) {
    put_graph_with_rev(
    txn,
    channel,
    chi.flag - EdgeFlags::PARENT,
    Vertex {
    change: key.change,
    start: key.start,
    end: pos,
    },
    Vertex {
    change: key.change,
    start: pos,
    end: key.end,
    },
    chi.introduced_by,
    )?;
    }
    txn.del_graph(&mut channel.graph, key, Some(chi))?;
    txn.put_graph(
    &mut channel.graph,
    if chi.flag.contains(EdgeFlags::PARENT) {
    Vertex {
    change: key.change,
    start: key.start,
    end: pos,
    }
    } else {
    Vertex {
    change: key.change,
    start: pos,
    end: key.end,
    }
    },
    chi,
    )?;
    }
    Ok(())
    }
    pub(crate) fn del_graph_with_rev<T: MutTxnT>(
    txn: &mut T,
    channel: &mut Channel<T>,
    mut flag: EdgeFlags,
    mut k0: Vertex<ChangeId>,
    mut k1: Vertex<ChangeId>,
    introduced_by: ChangeId,
    ) -> Result<bool, anyhow::Error> {
    if flag.contains(EdgeFlags::PARENT) {
    std::mem::swap(&mut k0, &mut k1);
    flag -= EdgeFlags::PARENT
    }
    debug!("del_graph_with_rev {:?} {:?} {:?}", flag, k0, k1);
    let a = txn.del_graph(
    &mut channel.graph,
    k0,
    Some(Edge {
    flag: flag,
    dest: Position {
    change: k1.change,
    pos: k1.start,
    },
    introduced_by,
    }),
    )?;
    let b = txn.del_graph(
    &mut channel.graph,
    k1,
    Some(Edge {
    flag: flag | EdgeFlags::PARENT,
    dest: Position {
    change: k0.change,
    pos: k0.end,
    },
    introduced_by,
    }),
    )?;
    assert!((a && b) || (!a && !b));
    Ok(a && b)
    }
    pub(crate) fn put_graph_with_rev<T: MutTxnT>(
    txn: &mut T,
    channel: &mut Channel<T>,
    flag: EdgeFlags,
    k0: Vertex<ChangeId>,
    k1: Vertex<ChangeId>,
    introduced_by: ChangeId,
    ) -> Result<bool, anyhow::Error> {
    debug_assert!(!flag.contains(EdgeFlags::PARENT));
    if k0.change == k1.change {
    assert_ne!(k0.start_pos(), k1.start_pos());
    }
    if introduced_by == ChangeId::ROOT {
    assert!(flag.contains(EdgeFlags::PSEUDO));
    }
    debug!("put_graph_with_rev {:?} {:?} {:?}", k0, k1, flag);
    let a = txn.put_graph(
    &mut channel.graph,
    k0,
    Edge {
    flag: flag,
    dest: Position {
    change: k1.change,
    pos: k1.start,
    },
    introduced_by,
    },
    )?;
    let b = txn.put_graph(
    &mut channel.graph,
    k1,
    Edge {
    flag: flag ^ EdgeFlags::PARENT,
    dest: Position {
    change: k0.change,
    pos: k0.end,
    },
    introduced_by,
    },
    )?;
    assert!((a && b) || (!a && !b));
    Ok(a && b)
  • edit in libpijul/src/pristine/mod.rs at line 1280
    [17.638670]
    pub(crate) fn register_change<T: MutTxnT>(
    txn: &mut T,
    internal: ChangeId,
    hash: Hash,
    change: &Change,
    ) -> Result<(), anyhow::Error> {
    txn.put_external(internal, hash)?;
    txn.put_internal(hash, internal)?;
    for dep in change.dependencies.iter() {
    debug!(target:"libpijul::register_change", "dep = {:?}", dep);
    let dep_internal = txn.get_internal(*dep).unwrap();
    debug!(target:"libpijul::register_change", "{:?} depends on {:?}", internal, dep_internal);
    txn.put_revdep(dep_internal, internal)?;
    txn.put_dep(internal, dep_internal)?;
    }
    for hunk in change.changes.iter().flat_map(|r| r.iter()) {
    let inode = match *hunk {
    Atom::NewVertex(NewVertex { ref inode, .. }) => inode,
    Atom::EdgeMap(EdgeMap { ref inode, .. }) => inode,
    };
    let inode = Position {
    change: inode
    .change
    .and_then(|change| txn.get_internal(change))
    .unwrap_or(internal),
    pos: inode.pos,
    };
    debug!(target:"libpijul::register_change", "touched: {:?} {:?}", inode, internal);
    txn.put_touched_files(inode, internal)?;
    txn.put_rev_touched_files(internal, inode)?;
    }
    Ok(())
    }
  • edit in libpijul/src/pristine/channel_dump.rs at line 101
    [17.653409][17.653409:653463]()
    graph: T::iter_graph_ref(
  • edit in libpijul/src/pristine/channel_dump.rs at line 101
    [17.653409]
    [17.653463]
    graph: iter_graph_ref(
  • edit in libpijul/src/pristine/channel_dump.rs at line 183
    [17.657288][17.657288:657352]()
    log: T::changeid_log_ref(txn.clone(), &channel, 0),
  • edit in libpijul/src/pristine/channel_dump.rs at line 183
    [17.657288]
    [17.657352]
    log: changeid_log_ref(txn.clone(), &channel, 0),
  • edit in libpijul/src/pristine/channel_dump.rs at line 312
    [17.661958][17.661958:662026]()
    let pp = self.txn.make_changeid(&hash);
  • edit in libpijul/src/pristine/channel_dump.rs at line 312
    [17.661958]
    [17.662026]
    let pp = make_changeid(self.txn, &hash);
  • edit in libpijul/src/output/output.rs at line 306
    [17.683557][17.683557:683622]()
    let dest = txn.find_block(&channel, edge.dest).unwrap();
  • edit in libpijul/src/output/output.rs at line 306
    [17.683557]
    [17.683622]
    let dest = find_block(txn, &channel, edge.dest).unwrap();
  • edit in libpijul/src/output/output.rs at line 308
    [17.683698][17.683698:683785]()
    txn.del_graph_with_rev(channel, edge.flag, vertex, dest, edge.introduced_by)?;
  • edit in libpijul/src/output/output.rs at line 308
    [17.683698]
    [17.683785]
    del_graph_with_rev(txn, channel, edge.flag, vertex, dest, edge.introduced_by)?;
  • edit in libpijul/src/output/output.rs at line 339
    [17.684832][17.684832:684909]()
    && !txn.is_alive(channel, vertex.inode_vertex())
  • edit in libpijul/src/output/output.rs at line 339
    [17.684832]
    [17.684909]
    && !is_alive(txn, channel, vertex.inode_vertex())
  • edit in libpijul/src/output/mod.rs at line 32
    [17.686908][17.686908:686940]()
    for e in txn.iter_adjacent(
  • edit in libpijul/src/output/mod.rs at line 32
    [17.686908]
    [17.686940]
    for e in iter_adjacent(
    txn,
  • edit in libpijul/src/output/mod.rs at line 41
    [17.687102][17.687102:687134]()
    for e in txn.iter_adjacent(
  • edit in libpijul/src/output/mod.rs at line 41
    [17.687102]
    [17.687134]
    for e in iter_adjacent(
    txn,
  • edit in libpijul/src/output/mod.rs at line 50
    [17.687411][17.687411:687480]()
    let name_vertex = txn.find_block(&channel, e.dest).unwrap();
  • edit in libpijul/src/output/mod.rs at line 50
    [17.687411]
    [17.687480]
    let name_vertex = find_block(txn, &channel, e.dest).unwrap();
  • edit in libpijul/src/output/mod.rs at line 68
    [17.688203][17.688203:688301]()
    for e in txn.iter_adjacent(&channel, name_vertex, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/output/mod.rs at line 68
    [17.688203]
    [17.688301]
    for e in iter_adjacent(
    txn,
    &channel,
    name_vertex,
    EdgeFlags::empty(),
    EdgeFlags::all(),
    ) {
  • edit in libpijul/src/output/mod.rs at line 77
    [17.688346][17.688346:688419]()
    let child = if let Some(child) = txn
    .iter_adjacent(
  • edit in libpijul/src/output/mod.rs at line 77
    [17.688346]
    [17.688419]
    let child = if let Some(child) = iter_adjacent(
    txn,
    &channel,
    name_vertex,
    EdgeFlags::FOLDER,
    EdgeFlags::FOLDER | EdgeFlags::BLOCK | EdgeFlags::PSEUDO,
    )
    .next()
    {
    child
    } else {
    let child = iter_adjacent(
    txn,
  • edit in libpijul/src/output/mod.rs at line 93
    [17.688509][17.688509:688583]()
    EdgeFlags::FOLDER | EdgeFlags::BLOCK | EdgeFlags::PSEUDO,
  • edit in libpijul/src/output/mod.rs at line 93
    [17.688509]
    [17.688583]
    EdgeFlags::all(),
  • edit in libpijul/src/output/mod.rs at line 95
    [17.688597]
    [17.688597]
    .filter(|e| !e.flag.contains(EdgeFlags::PARENT))
  • edit in libpijul/src/output/mod.rs at line 97
    [17.688617][17.688617:688897]()
    {
    child
    } else {
    let child = txn
    .iter_adjacent(&channel, name_vertex, EdgeFlags::FOLDER, EdgeFlags::all())
    .filter(|e| !e.flag.contains(EdgeFlags::PARENT))
    .next()
    .unwrap();
  • edit in libpijul/src/output/mod.rs at line 97
    [17.688617]
    [17.688897]
    .unwrap();
  • edit in libpijul/src/output/mod.rs at line 100
    [17.688970][17.688970:689072]()
    txn.debug_root_rev(channel, child.dest.inode_vertex(), &mut f)
    .unwrap();
  • edit in libpijul/src/output/mod.rs at line 100
    [17.688970]
    [17.689072]
    debug_root_rev(txn, channel, child.dest.inode_vertex(), &mut f).unwrap();
  • edit in libpijul/src/output/mod.rs at line 127
    [17.689916][17.689916:689993]()
    txn.iter_adjacent(&channel, pos.inode_vertex(), f, f | EdgeFlags::BLOCK)
  • edit in libpijul/src/output/mod.rs at line 127
    [17.689916]
    [17.689993]
    iter_adjacent(txn, &channel, pos.inode_vertex(), f, f | EdgeFlags::BLOCK)
  • edit in libpijul/src/missing_context.rs at line 83
    [17.699328][17.699328:699364]()
    txn.put_graph_with_rev(
  • edit in libpijul/src/missing_context.rs at line 83
    [17.699328]
    [17.699364]
    put_graph_with_rev(
    txn,
  • edit in libpijul/src/missing_context.rs at line 97
    [17.699700][17.699700:699736]()
    txn.put_graph_with_rev(
  • edit in libpijul/src/missing_context.rs at line 97
    [17.699700]
    [17.699736]
    put_graph_with_rev(
    txn,
  • edit in libpijul/src/missing_context.rs at line 118
    [17.700193][17.700193:700242]()
    txn.find_block_end(channel, b.dest)?
  • edit in libpijul/src/missing_context.rs at line 118
    [17.700193]
    [17.700242]
    find_block_end(txn, channel, b.dest)?
  • edit in libpijul/src/missing_context.rs at line 124
    [17.700395][17.700395:700427]()
    txn.put_graph_with_rev(
  • edit in libpijul/src/missing_context.rs at line 124
    [17.700395]
    [17.700427]
    put_graph_with_rev(
    txn,
  • edit in libpijul/src/missing_context.rs at line 170
    [17.701729][17.701729:701825]()
    txn.put_graph_with_rev(channel, EdgeFlags::PSEUDO, d, descendant, ChangeId::ROOT)?;
  • edit in libpijul/src/missing_context.rs at line 170
    [17.701729]
    [17.701825]
    put_graph_with_rev(
    txn,
    channel,
    EdgeFlags::PSEUDO,
    d,
    descendant,
    ChangeId::ROOT,
    )?;
  • edit in libpijul/src/missing_context.rs at line 195
    [17.702212][17.702212:702442]()
    let source = txn.internal_pos(&e.from, change_id)?;
    let source = txn.find_block_end(&channel, source)?;
    let target = txn.internal_pos(&e.to.start_pos(), change_id)?;
    let target = txn.find_block(&channel, target)?;
  • edit in libpijul/src/missing_context.rs at line 195
    [17.702212]
    [17.702442]
    let source = internal_pos(txn, &e.from, change_id)?;
    let source = find_block_end(txn, &channel, source)?;
    let target = internal_pos(txn, &e.to.start_pos(), change_id)?;
    let target = find_block(txn, &channel, target)?;
  • edit in libpijul/src/missing_context.rs at line 210
    [17.702899][17.702899:702987]()
    for v in txn.iter_adjacent(channel, source, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/missing_context.rs at line 210
    [17.702899]
    [17.702987]
    for v in iter_adjacent(txn, channel, source, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/missing_context.rs at line 243
    [17.704213][17.704213:704301]()
    for v in txn.iter_adjacent(channel, target, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/missing_context.rs at line 243
    [17.704213]
    [17.704301]
    for v in iter_adjacent(txn, channel, target, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/missing_context.rs at line 252
    [17.704670][17.704670:704732]()
    unknown.insert(txn.find_block_end(channel, v.dest)?);
  • edit in libpijul/src/missing_context.rs at line 252
    [17.704670]
    [17.704732]
    unknown.insert(find_block_end(txn, channel, v.dest)?);
  • edit in libpijul/src/missing_context.rs at line 260
    [17.705017][17.705017:705105]()
    for v in txn.iter_adjacent(channel, target, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/missing_context.rs at line 260
    [17.705017]
    [17.705105]
    for v in iter_adjacent(txn, channel, target, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/missing_context.rs at line 297
    [17.706151][17.706151:706347]()
    let mut pos = txn.internal_pos(&e.to.start_pos(), change_id)?;
    let end_pos = txn.internal_pos(&e.to.end_pos(), change_id)?;
    while let Ok(dest_vertex) = txn.find_block(&channel, pos) {
  • edit in libpijul/src/missing_context.rs at line 297
    [17.706151]
    [17.706347]
    let mut pos = internal_pos(txn, &e.to.start_pos(), change_id)?;
    let end_pos = internal_pos(txn, &e.to.end_pos(), change_id)?;
    while let Ok(dest_vertex) = find_block(txn, &channel, pos) {
  • edit in libpijul/src/missing_context.rs at line 365
    [17.708246][17.708246:708278]()
    for v in txn.iter_adjacent(
  • edit in libpijul/src/missing_context.rs at line 365
    [17.708246]
    [17.708278]
    for v in iter_adjacent(
    txn,
  • edit in libpijul/src/missing_context.rs at line 372
    [17.708419][17.708419:708450]()
    trace!("v = {:?}", v);
  • edit in libpijul/src/missing_context.rs at line 372
    [17.708419]
    [17.708450]
    debug!(
    "collect_unknown_children dest_vertex = {:?}, v = {:?}",
    v, dest_vertex
    );
  • edit in libpijul/src/missing_context.rs at line 386
    [17.708829][17.708829:709088]()
    if !txn
    .iter_adjacent(
    channel,
    dest_vertex,
    EdgeFlags::PARENT | EdgeFlags::DELETED,
    EdgeFlags::all(),
    )
    .any(|e| e.introduced_by == v.introduced_by)
  • edit in libpijul/src/missing_context.rs at line 386
    [17.708829]
    [17.709088]
    if !iter_adjacent(
    txn,
    channel,
    dest_vertex,
    EdgeFlags::PARENT | EdgeFlags::DELETED,
    EdgeFlags::all(),
    )
    .any(|e| e.introduced_by == v.introduced_by)
  • edit in libpijul/src/missing_context.rs at line 426
    [17.710088][17.710088:710141]()
    let p = txn.find_block(channel, edge.dest)?;
  • edit in libpijul/src/missing_context.rs at line 426
    [17.710088]
    [17.710141]
    let p = find_block(txn, channel, edge.dest)?;
  • edit in libpijul/src/missing_context.rs at line 430
    [17.710324][17.710324:710360]()
    txn.put_graph_with_rev(
  • edit in libpijul/src/missing_context.rs at line 430
    [17.710324]
    [17.710360]
    put_graph_with_rev(
    txn,
  • edit in libpijul/src/missing_context.rs at line 439
    [17.710558][17.710558:710627]()
    while let Ok(v) = txn.find_block(channel, u.end_pos()) {
  • edit in libpijul/src/missing_context.rs at line 439
    [17.710558]
    [17.710627]
    while let Ok(v) = find_block(txn, channel, u.end_pos()) {
  • edit in libpijul/src/missing_context.rs at line 442
    [17.710733][17.710733:710777]()
    txn.put_graph_with_rev(
  • edit in libpijul/src/missing_context.rs at line 442
    [17.710733]
    [17.710777]
    put_graph_with_rev(
    txn,
  • edit in libpijul/src/missing_context.rs at line 457
    [17.711169][17.711169:711248]()
    if txn.is_alive(channel, p) || edge.flag.contains(EdgeFlags::FOLDER) {
  • edit in libpijul/src/missing_context.rs at line 457
    [17.711169]
    [17.711248]
    if is_alive(txn, channel, p) || edge.flag.contains(EdgeFlags::FOLDER) {
  • edit in libpijul/src/missing_context.rs at line 468
    [17.711638][17.711638:711693]()
    // org id MAjl4KAOsUjeORSkZWk6W/QbgBD/9TDZ1Usr0XnzTFg=
  • edit in libpijul/src/missing_context.rs at line 468
    [17.711638]
    [17.711693]
  • edit in libpijul/src/missing_context.rs at line 479
    [17.712042][17.712042:712091]()
    if !txn.is_alive(channel, dest_vertex) {
  • edit in libpijul/src/missing_context.rs at line 479
    [17.712042]
    [17.712091]
    if !is_alive(txn, channel, dest_vertex) {
  • edit in libpijul/src/missing_context.rs at line 481
    [17.712143][17.712143:712296]()
    let p = txn.find_block_end(channel, e.dest)?;
    if !txn.is_alive(channel, p) {
    txn.del_graph_with_rev(
  • edit in libpijul/src/missing_context.rs at line 481
    [17.712143]
    [17.712296]
    let p = find_block_end(txn, channel, e.dest)?;
    if !is_alive(txn, channel, p) {
    debug!("delete {:?} {:?}", p, dest_vertex);
    del_graph_with_rev(
    txn,
  • edit in libpijul/src/missing_context.rs at line 494
    [17.712549][17.712549:712749]()
    let p = txn.find_block(channel, e.dest)?;
    if !txn.is_alive(channel, p) {
    txn.del_graph_with_rev(channel, e.flag, dest_vertex, p, e.introduced_by)?;
  • edit in libpijul/src/missing_context.rs at line 494
    [17.712549]
    [17.712749]
    let p = find_block(txn, channel, e.dest)?;
    if !is_alive(txn, channel, p) {
    debug!("delete (2) {:?} {:?}", dest_vertex, p);
    del_graph_with_rev(txn, channel, e.flag, dest_vertex, p, e.introduced_by)?;
  • edit in libpijul/src/missing_context.rs at line 520
    [17.713184][17.713184:713316]()
    let mut pos = txn.internal_pos(&n.to.start_pos(), change_id)?;
    let end_pos = txn.internal_pos(&n.to.end_pos(), change_id)?;
  • edit in libpijul/src/missing_context.rs at line 520
    [17.713184]
    [17.713316]
    let mut pos = internal_pos(txn, &n.to.start_pos(), change_id)?;
    let end_pos = internal_pos(txn, &n.to.end_pos(), change_id)?;
  • edit in libpijul/src/missing_context.rs at line 523
    [17.713358][17.713358:713458]()
    while let Ok(dest_vertex) = txn.find_block(&channel, pos) {
    for v in txn.iter_adjacent(
  • edit in libpijul/src/missing_context.rs at line 523
    [17.713358]
    [17.713458]
    while let Ok(dest_vertex) = find_block(txn, &channel, pos) {
    debug!("collect zombie context: {:?}", dest_vertex);
    for v in iter_adjacent(
    txn,
  • edit in libpijul/src/missing_context.rs at line 543
    [17.714063]
    [17.714063]
    debug!("unknown: {:?}", v);
  • edit in libpijul/src/missing_context.rs at line 568
    [17.714691][17.714691:714748]()
    let p = txn.find_block_end(channel, edge.dest)?;
  • edit in libpijul/src/missing_context.rs at line 568
    [17.714691]
    [17.714748]
    let p = find_block_end(txn, channel, edge.dest)?;
  • edit in libpijul/src/missing_context.rs at line 570
    [17.714817][17.714817:715147]()
    if !edge.flag.contains(EdgeFlags::FOLDER) {
    // If ~dest_vertex~ is a folder, there's no way to repair
    // its down context, so we can't disconnect here.
    let f = edge.flag - EdgeFlags::PARENT;
    txn.del_graph_with_rev(channel, f, p, dest_vertex, edge.introduced_by)?;
    }
  • edit in libpijul/src/missing_context.rs at line 572
    [17.715252][17.715252:715438]()
    txn.put_graph_with_rev(
    channel,
    EdgeFlags::DELETED | EdgeFlags::BLOCK | fold,
    p,
    dest_vertex,
    change_id,
    )?;
  • edit in libpijul/src/missing_context.rs at line 573
    [17.715461][17.715461:715532]()
    while let Ok(u) = txn.find_block_end(channel, v.start_pos()) {
  • edit in libpijul/src/missing_context.rs at line 573
    [17.715461]
    [17.715532]
    while let Ok(u) = find_block_end(txn, channel, v.start_pos()) {
  • edit in libpijul/src/missing_context.rs at line 576
    [17.715608][17.715608:715648]()
    txn.put_graph_with_rev(
  • edit in libpijul/src/missing_context.rs at line 576
    [17.715608]
    [17.715648]
    put_graph_with_rev(
    txn,
  • edit in libpijul/src/missing_context.rs at line 590
    [17.715979][17.715979:716020]()
    for parent in txn.iter_adjacent(
  • edit in libpijul/src/missing_context.rs at line 590
    [17.715979]
    [17.716020]
    for parent in iter_adjacent(
    txn,
  • edit in libpijul/src/missing_context.rs at line 603
    [17.716367][17.716367:716440]()
    let parent_dest = txn.find_block_end(channel, parent.dest)?;
  • edit in libpijul/src/missing_context.rs at line 603
    [17.716367]
    [17.716440]
    let parent_dest = find_block_end(txn, channel, parent.dest)?;
  • edit in libpijul/src/missing_context.rs at line 608
    [17.716619][17.716619:716698]()
    txn.put_graph_with_rev(channel, flag, parent_dest, v, change_id)?;
  • edit in libpijul/src/missing_context.rs at line 608
    [17.716619]
    [17.716698]
    put_graph_with_rev(txn, channel, flag, parent_dest, v, change_id)?;
  • edit in libpijul/src/lib.rs at line 20
    [17.717695][17.717695:717710]()
    #[doc(hidden)]
  • edit in libpijul/src/lib.rs at line 96
    [17.720221][17.720221:720254]()
    pub use crate::pristine::Vertex;
  • edit in libpijul/src/lib.rs at line 96
    [17.720221]
    [17.720254]
    pub use crate::pristine::{
    Base32, ChangeId, Channel, ChannelRef, EdgeFlags, Hash, Merkle, MutTxnT, RemoteRef, TxnT,
    Vertex,
    };
  • edit in libpijul/src/lib.rs at line 299
    [17.727465][17.727465:727527]()
    let channel = self.open_or_create_channel(name)?;
  • edit in libpijul/src/lib.rs at line 299
    [17.727465]
    [17.727527]
    let channel = pristine::MutTxnT::open_or_create_channel(self, name)?;
  • edit in libpijul/src/lib.rs at line 346
    [17.728883][17.728883:728959]()
    for (_, (h, m)) in self.changeid_rev_log(&channel.borrow(), None) {
  • edit in libpijul/src/lib.rs at line 346
    [17.728883]
    [17.728959]
    for (_, (h, m)) in pristine::changeid_rev_log(self, &channel.borrow(), None) {
  • edit in libpijul/src/lib.rs at line 388
    [17.730131][17.730131:730192]()
    let cid = if let Some(c) = self.get_internal(hash) {
  • edit in libpijul/src/lib.rs at line 388
    [17.730131]
    [17.730192]
    let cid = if let Some(c) = pristine::TxnT::get_internal(self, hash) {
  • edit in libpijul/src/lib.rs at line 394
    [17.730324]
    [17.730324]
    }
    fn is_alive(
    &self,
    channel: &pristine::Channel<Self>,
    a: pristine::Vertex<pristine::ChangeId>,
    ) -> bool {
    pristine::is_alive(self, channel, a)
  • edit in libpijul/src/lib.rs at line 404
    [17.730331]
    [17.730331]
    fn current_state(&self, channel: &pristine::Channel<Self>) -> Option<pristine::Merkle> {
    pristine::current_state(self, channel)
    }
  • edit in libpijul/src/lib.rs at line 415
    [17.730514][17.730514:730566]()
    iter: self.changeid_log(channel, from),
  • edit in libpijul/src/lib.rs at line 415
    [17.730514]
    [17.730566]
    iter: pristine::changeid_log(self, channel, from),
  • edit in libpijul/src/lib.rs at line 417
    [17.730576]
    [17.730576]
    }
    fn log_for_path<'channel, 'txn>(
    &'txn self,
    channel: &'channel pristine::Channel<Self>,
    pos: pristine::Position<pristine::ChangeId>,
    from: u64,
    ) -> pristine::PathChangeset<'channel, 'txn, Self> {
    pristine::log_for_path(self, channel, pos, from)
    }
    fn rev_log_for_path<'channel, 'txn>(
    &'txn self,
    channel: &'channel pristine::Channel<Self>,
    pos: pristine::Position<pristine::ChangeId>,
    from: u64,
    ) -> pristine::RevPathChangeset<'channel, 'txn, Self> {
    pristine::rev_log_for_path(self, channel, pos, from)
  • edit in libpijul/src/lib.rs at line 444
    [17.730788][17.730788:730844]()
    iter: self.changeid_rev_log(channel, from),
  • edit in libpijul/src/lib.rs at line 444
    [17.730788]
    [17.730844]
    iter: pristine::changeid_rev_log(self, channel, from),
  • edit in libpijul/src/lib.rs at line 448
    [17.730861]
    [17.730861]
    fn changeid_reverse_log<'txn>(
    &'txn self,
    channel: &pristine::Channel<Self>,
    from: Option<u64>,
    ) -> pristine::RevCursor<
    Self,
    &'txn Self,
    Self::RevchangesetCursor,
    u64,
    (pristine::ChangeId, pristine::Merkle),
    > {
    pristine::changeid_rev_log(self, channel, from)
    }
  • edit in libpijul/src/lib.rs at line 476
    [17.731284][17.731284:731332]()
    if let Some(h) = self.get_internal(h) {
  • edit in libpijul/src/lib.rs at line 476
    [17.731284]
    [17.731332]
    if let Some(h) = pristine::TxnT::get_internal(self, h) {
  • edit in libpijul/src/lib.rs at line 484
    [17.731541][17.731541:731590]()
    if let Some(id) = self.get_internal(h) {
  • edit in libpijul/src/lib.rs at line 484
    [17.731541]
    [17.731590]
    if let Some(id) = pristine::TxnT::get_internal(self, h) {
  • edit in libpijul/src/lib.rs at line 502
    [17.732074][17.732074:732139]()
    change: self.get_internal(position.change).unwrap(),
  • edit in libpijul/src/lib.rs at line 502
    [17.732074]
    [17.732139]
    change: pristine::TxnT::get_internal(self, position.change).unwrap(),
  • edit in libpijul/src/lib.rs at line 515
    [17.732546][17.732546:732611]()
    change: self.get_internal(position.change).unwrap(),
  • edit in libpijul/src/lib.rs at line 515
    [17.732546]
    [17.732611]
    change: pristine::TxnT::get_internal(self, position.change).unwrap(),
  • edit in libpijul/src/lib.rs at line 562
    [17.734215]
    [17.734215]
    fn iter_adjacent<'db, 'txn: 'db>(
    &'txn self,
    channel: &'db pristine::Channel<Self>,
    key: Vertex<pristine::ChangeId>,
    min_flag: pristine::EdgeFlags,
    max_flag: pristine::EdgeFlags,
    ) -> pristine::AdjacentIterator<'txn, Self> {
    pristine::iter_adjacent(self, channel, key, min_flag, max_flag)
    }
  • edit in libpijul/src/fs.rs at line 456
    [17.752852][17.752852:752932]()
    let dest = self.txn.find_block(&self.channel, child.dest).unwrap();
  • edit in libpijul/src/fs.rs at line 456
    [17.752852]
    [17.752932]
    let dest = find_block(self.txn, &self.channel, child.dest).unwrap();
  • edit in libpijul/src/fs.rs at line 466
    [17.753347][17.753347:753681]()
    let grandchild = self
    .txn
    .iter_adjacent(
    &self.channel,
    dest,
    EdgeFlags::FOLDER,
    EdgeFlags::FOLDER | EdgeFlags::PSEUDO | EdgeFlags::BLOCK,
    )
    .next()
    .unwrap();
  • edit in libpijul/src/fs.rs at line 466
    [17.753347]
    [17.753681]
    let grandchild = iter_adjacent(
    self.txn,
    &self.channel,
    dest,
    EdgeFlags::FOLDER,
    EdgeFlags::FOLDER | EdgeFlags::PSEUDO | EdgeFlags::BLOCK,
    )
    .next()
    .unwrap();
  • edit in libpijul/src/fs.rs at line 494
    [17.754203][17.754203:754235]()
    adj: txn.iter_adjacent(
  • edit in libpijul/src/fs.rs at line 494
    [17.754203]
    [17.754235]
    adj: iter_adjacent(
    txn,
  • edit in libpijul/src/fs.rs at line 525
    [17.755146][17.755146:755231]()
    let dest = self.txn.find_block_end(&self.channel, parent.dest).unwrap();
  • edit in libpijul/src/fs.rs at line 525
    [17.755146]
    [17.755231]
    let dest = find_block_end(self.txn, &self.channel, parent.dest).unwrap();
  • edit in libpijul/src/fs.rs at line 534
    [17.755657][17.755657:756032]()
    let grandparent = self
    .txn
    .iter_adjacent(
    &self.channel,
    dest,
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::FOLDER | EdgeFlags::PARENT | EdgeFlags::PSEUDO | EdgeFlags::BLOCK,
    )
    .next()
    .unwrap();
  • edit in libpijul/src/fs.rs at line 534
    [17.755657]
    [17.756032]
    let grandparent = iter_adjacent(
    self.txn,
    &self.channel,
    dest,
    EdgeFlags::FOLDER | EdgeFlags::PARENT,
    EdgeFlags::FOLDER | EdgeFlags::PARENT | EdgeFlags::PSEUDO | EdgeFlags::BLOCK,
    )
    .next()
    .unwrap();
  • edit in libpijul/src/fs.rs at line 564
    [17.756556][17.756556:756588]()
    adj: txn.iter_adjacent(
  • edit in libpijul/src/fs.rs at line 564
    [17.756556]
    [17.756588]
    adj: iter_adjacent(
    txn,
  • edit in libpijul/src/fs.rs at line 610
    [17.758177][17.758177:758289]()
    for (_, parent) in txn
    .iter_graph(&channel.graph, cur_key.inode_vertex(), Some(e))
  • edit in libpijul/src/fs.rs at line 610
    [17.758177]
    [17.758289]
    for (_, parent) in iter_graph(txn, &channel.graph, cur_key.inode_vertex(), Some(e))
  • edit in libpijul/src/fs.rs at line 614
    [17.758464][17.758464:758664]()
    let parent_dest = txn.find_block_end(&channel, parent.dest).unwrap();
    for (_, grandparent) in txn
    .iter_graph(&channel.graph, parent_dest, Some(e))
  • edit in libpijul/src/fs.rs at line 614
    [17.758464]
    [17.758664]
    let parent_dest = find_block_end(txn, &channel, parent.dest).unwrap();
    for (_, grandparent) in iter_graph(txn, &channel.graph, parent_dest, Some(e))
  • edit in libpijul/src/fs.rs at line 645
    [17.759605][17.759605:759767]()
    for name in txn.iter_adjacent(&channel, current.inode_vertex(), flag0, flag1) {
    let name_dest = txn.find_block(&channel, name.dest).unwrap();
  • edit in libpijul/src/fs.rs at line 645
    [17.759605]
    [17.759767]
    for name in iter_adjacent(txn, &channel, current.inode_vertex(), flag0, flag1) {
    let name_dest = find_block(txn, &channel, name.dest).unwrap();
  • edit in libpijul/src/fs.rs at line 667
    [17.760549][17.760549:760636]()
    current = txn
    .iter_adjacent(&channel, next, flag0, flag1)
  • edit in libpijul/src/fs.rs at line 667
    [17.760549]
    [17.760636]
    current = iter_adjacent(txn, &channel, next, flag0, flag1)
  • edit in libpijul/src/fs.rs at line 698
    [17.761463][17.761463:761532]()
    let inode_vertex = txn.find_block_end(&channel, v).unwrap();
  • edit in libpijul/src/fs.rs at line 698
    [17.761463]
    [17.761532]
    let inode_vertex = find_block_end(txn, &channel, v).unwrap();
  • edit in libpijul/src/fs.rs at line 700
    [17.761584][17.761584:761665]()
    for name in txn.iter_adjacent(channel, v.inode_vertex(), flag0, flag1) {
  • edit in libpijul/src/fs.rs at line 700
    [17.761584]
    [17.761665]
    for name in iter_adjacent(txn, channel, v.inode_vertex(), flag0, flag1) {
  • edit in libpijul/src/fs.rs at line 709
    [17.761942][17.761942:762020]()
    let name_dest = txn.find_block_end(&channel, name.dest).unwrap();
  • edit in libpijul/src/fs.rs at line 709
    [17.761942]
    [17.762020]
    let name_dest = find_block_end(txn, &channel, name.dest).unwrap();
  • edit in libpijul/src/fs.rs at line 711
    [17.762071][17.762071:762172]()
    if let Some(next) = txn
    .iter_adjacent(channel, name_dest, flag0, flag1)
  • edit in libpijul/src/fs.rs at line 711
    [17.762071]
    [17.762172]
    if let Some(next) = iter_adjacent(txn, channel, name_dest, flag0, flag1)
  • edit in libpijul/src/find_alive.rs at line 2
    [17.763362][17.763362:763435]()
    use crate::pristine::{ChangeId, Channel, Edge, EdgeFlags, TxnT, Vertex};
  • edit in libpijul/src/find_alive.rs at line 2
    [17.763362]
    [17.763435]
    use crate::pristine::*;
  • edit in libpijul/src/find_alive.rs at line 22
    [17.764078][17.764078:764136]()
    let vertex = txn.find_block(&channel, elt.dest)?;
  • edit in libpijul/src/find_alive.rs at line 22
    [17.764078]
    [17.764136]
    let vertex = find_block(txn, &channel, elt.dest)?;
  • edit in libpijul/src/find_alive.rs at line 26
    [17.764294][17.764294:764387]()
    for v in txn.iter_adjacent(&channel, vertex, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/find_alive.rs at line 26
    [17.764294]
    [17.764387]
    for v in iter_adjacent(txn, &channel, vertex, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/find_alive.rs at line 33
    [17.764633][17.764633:764689]()
    if !v.flag.contains(EdgeFlags::DELETED)
  • edit in libpijul/src/find_alive.rs at line 33
    [17.764633]
    [17.764689]
    if v.flag.contains(EdgeFlags::BLOCK)
    && !v.flag.contains(EdgeFlags::DELETED)
  • edit in libpijul/src/find_alive.rs at line 73
    [17.765872][17.765872:765934]()
    let vertex = txn.find_block_end(&channel, elt.dest)?;
  • edit in libpijul/src/find_alive.rs at line 73
    [17.765872]
    [17.765934]
    let vertex = find_block_end(txn, &channel, elt.dest)?;
  • edit in libpijul/src/find_alive.rs at line 78
    [17.766141][17.766141:766233]()
    for v in txn.iter_adjacent(&channel, vertex, EdgeFlags::PARENT, EdgeFlags::all()) {
  • edit in libpijul/src/find_alive.rs at line 78
    [17.766141]
    [17.766233]
    for v in iter_adjacent(txn, &channel, vertex, EdgeFlags::PARENT, EdgeFlags::all()) {
  • edit in libpijul/src/find_alive.rs at line 91
    [17.766873][17.766873:767242]()
    if txn
    .iter_adjacent(&channel, vertex, EdgeFlags::empty(), EdgeFlags::all())
    .any(|e| {
    !e.flag.contains(EdgeFlags::PARENT)
    && !e.flag.contains(EdgeFlags::FOLDER)
    })
    {
  • edit in libpijul/src/find_alive.rs at line 91
    [17.766873]
    [17.767242]
    if iter_adjacent(
    txn,
    &channel,
    vertex,
    EdgeFlags::empty(),
    EdgeFlags::all(),
    )
    .any(|e| {
    e.flag.contains(EdgeFlags::BLOCK)
    && !e.flag.contains(EdgeFlags::PARENT)
    && !e.flag.contains(EdgeFlags::FOLDER)
    }) {
  • edit in libpijul/src/find_alive.rs at line 127
    [17.768226][17.768226:768348]()
    if txn
    .iter_adjacent(&channel, vertex, EdgeFlags::empty(), EdgeFlags::all())
  • edit in libpijul/src/find_alive.rs at line 127
    [17.768226]
    [17.768348]
    if iter_adjacent(txn, &channel, vertex, EdgeFlags::empty(), EdgeFlags::all())
  • edit in libpijul/src/diff/replace.rs at line 91
    [17.782919][17.782919:782951]()
    line: from_new,
  • edit in libpijul/src/diff/replace.rs at line 91
    [17.782919]
    [17.782951]
    line: from_new + 1,
  • edit in libpijul/src/diff/mod.rs at line 148
    [17.798199][17.798199:798296]()
    for e in txn.iter_adjacent(channel, v.vertex, EdgeFlags::PARENT, EdgeFlags::all()) {
  • edit in libpijul/src/diff/mod.rs at line 148
    [17.798199]
    [17.798296]
    for e in iter_adjacent(txn, channel, v.vertex, EdgeFlags::PARENT, EdgeFlags::all()) {
  • edit in libpijul/src/diff/delete.rs at line 64
    [17.807292][17.807292:807328]()
    line: d[r].new,
  • edit in libpijul/src/diff/delete.rs at line 64
    [17.807254]
    [17.807328]
    line: d[r].new + 1,
  • edit in libpijul/src/diff/delete.rs at line 76
    [17.808186][17.808186:808222]()
    line: d[r].new,
  • edit in libpijul/src/diff/delete.rs at line 76
    [17.808148]
    [17.808222]
    line: d[r].new + 1,
  • edit in libpijul/src/diff/delete.rs at line 154
    [17.810434][17.810434:810627]()
    for v in txn
    .iter_adjacent(&channel, graph_key, EdgeFlags::PARENT, EdgeFlags::all())
    .filter(|e| e.flag.contains(EdgeFlags::PARENT) && !e.flag.contains(EdgeFlags::PSEUDO))
  • edit in libpijul/src/diff/delete.rs at line 154
    [17.810395]
    [17.810627]
    for v in iter_adjacent(
    txn,
    &channel,
    graph_key,
    EdgeFlags::PARENT,
    EdgeFlags::all(),
    )
    .filter(|e| e.flag.contains(EdgeFlags::PARENT) && !e.flag.contains(EdgeFlags::PSEUDO))
  • edit in libpijul/src/diff/delete.rs at line 165
    [5.84][5.84:105]()
    continue
  • edit in libpijul/src/diff/delete.rs at line 165
    [5.84]
    [5.105]
    continue;
  • edit in libpijul/src/diff/delete.rs at line 246
    [17.814315][17.814315:814342]()
    line: new,
  • edit in libpijul/src/diff/delete.rs at line 246
    [17.814286]
    [17.814342]
    line: new + 1,
  • edit in libpijul/src/diff/delete.rs at line 314
    [17.816424][17.816424:816456]()
    for e in txn.iter_adjacent(
  • edit in libpijul/src/diff/delete.rs at line 314
    [17.816424]
    [17.816456]
    for e in iter_adjacent(
    txn,
  • edit in libpijul/src/change.rs at line 202
    [9.540][9.540:644]()
    txn.get_changeset(&channel.changes, a, None).cmp(&txn.get_changeset(&channel.changes, b, None))
  • edit in libpijul/src/change.rs at line 202
    [9.540]
    [9.644]
    txn.get_changeset(&channel.changes, a, None)
    .cmp(&txn.get_changeset(&channel.changes, b, None))
  • edit in libpijul/src/change.rs at line 209
    [9.851][9.851:955]()
    txn.get_changeset(&channel.changes, a, None).cmp(&txn.get_changeset(&channel.changes, b, None))
  • edit in libpijul/src/change.rs at line 209
    [9.851]
    [9.955]
    txn.get_changeset(&channel.changes, a, None)
    .cmp(&txn.get_changeset(&channel.changes, b, None))
  • edit in libpijul/src/change.rs at line 215
    [17.837805][17.837805:837882](),[17.837882][9.964:994]()
    pub fn full_dependencies<T: TxnT>(
    txn: &T,
    channel: &ChannelRef<T>,
    ) -> (Vec<Hash>, Vec<Hash>) {
  • edit in libpijul/src/change.rs at line 215
    [17.837805]
    [17.837922]
    pub fn full_dependencies<T: TxnT>(txn: &T, channel: &ChannelRef<T>) -> (Vec<Hash>, Vec<Hash>) {
  • edit in libpijul/src/change.rs at line 218
    [17.837994][17.837994:838050]()
    for (_, (ch, _)) in txn.changeid_log(&channel, 0) {
  • edit in libpijul/src/change.rs at line 218
    [17.837994]
    [17.838050]
    for (_, (ch, _)) in changeid_log(txn, &channel, 0) {
  • edit in libpijul/src/change.rs at line 241
    [17.838610][17.838610:838760]()
    let from = txn.find_block_end(channel, e_from).unwrap();
    for edge in txn.iter_adjacent(channel, from, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/change.rs at line 241
    [17.838610]
    [17.838760]
    let from = find_block_end(txn, channel, e_from).unwrap();
    for edge in iter_adjacent(txn, channel, from, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/change.rs at line 272
    [17.839506][17.839506:839565]()
    let mut to = txn.find_block(channel, to_pos).unwrap();
  • edit in libpijul/src/change.rs at line 272
    [17.839506]
    [17.839565]
    let mut to = find_block(txn, channel, to_pos).unwrap();
  • edit in libpijul/src/change.rs at line 274
    [17.839576][17.839576:839667]()
    for edge in txn.iter_adjacent(channel, to, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/change.rs at line 274
    [17.839576]
    [17.839667]
    for edge in iter_adjacent(txn, channel, to, EdgeFlags::empty(), EdgeFlags::all()) {
  • edit in libpijul/src/change.rs at line 291
    [17.840186][17.840186:840247]()
    to = txn.find_block(channel, to.end_pos()).unwrap();
  • edit in libpijul/src/change.rs at line 291
    [17.840186]
    [17.840247]
    to = find_block(txn, channel, to.end_pos()).unwrap();
  • edit in libpijul/src/change.rs at line 1807
    [17.894291][12.0:93]()
    write!(w, "Resurrecting zombie lines in {:?}:{} ", local.path, local.line)?;
  • edit in libpijul/src/change.rs at line 1807
    [17.894291]
    [17.894369]
    write!(
    w,
    "Resurrecting zombie lines in {:?}:{} ",
    local.path, local.line
    )?;
  • edit in libpijul/src/change.rs at line 2087
    [12.912][12.912:931]()
    })
  • edit in libpijul/src/change.rs at line 2087
    [12.912]
    [17.904855]
    }),
  • edit in libpijul/src/apply.rs at line 42
    [17.945534][17.945534:945648]()
    let internal: ChangeId = txn.make_changeid(&hash);
    txn.register_change(internal, hash, &change)?;
  • edit in libpijul/src/apply.rs at line 42
    [17.945534]
    [17.945648]
    let internal: ChangeId = make_changeid(txn, &hash);
    register_change(txn, internal, hash, &change)?;
  • edit in libpijul/src/apply.rs at line 91
    [17.947110][17.947110:947248]()
    let internal: ChangeId = txn.make_changeid(&hash);
    txn.register_change(internal, hash, &change)?;
  • edit in libpijul/src/apply.rs at line 91
    [17.947110]
    [17.947248]
    let internal: ChangeId = make_changeid(txn, &hash);
    register_change(txn, internal, hash, &change)?;
  • edit in libpijul/src/apply.rs at line 256
    [17.952806][17.952806:952912]()
    let internal: ChangeId = txn.make_changeid(&hash);
    txn.register_change(internal, hash, &change)?;
  • edit in libpijul/src/apply.rs at line 256
    [17.952806]
    [17.952912]
    let internal: ChangeId = make_changeid(txn, &hash);
    register_change(txn, internal, hash, &change)?;
  • edit in libpijul/src/apply.rs at line 313
    [17.954497][17.954497:954554]()
    txn.put_inodes_with_rev(inode, vertex)?;
  • edit in libpijul/src/apply.rs at line 313
    [17.954497]
    [17.954554]
    put_inodes_with_rev(txn, inode, vertex)?;
  • edit in libpijul/src/apply.rs at line 360
    [17.956052][17.956052:956100]()
    let up = txn.internal_pos(up, change)?;
  • edit in libpijul/src/apply.rs at line 360
    [17.956052]
    [17.956100]
    let up = internal_pos(txn, up, change)?;
  • edit in libpijul/src/apply.rs at line 364
    [17.956206][17.956206:956258]()
    let down = txn.internal_pos(down, change)?;
  • edit in libpijul/src/apply.rs at line 364
    [17.956206]
    [17.956258]
    let down = internal_pos(txn, down, change)?;
  • edit in libpijul/src/apply.rs at line 374
    [17.956626][17.956626:956703]()
    txn.put_graph_with_rev(channel, flag, up, vertex, *change)?;
  • edit in libpijul/src/apply.rs at line 374
    [17.956626]
    [17.956703]
    put_graph_with_rev(txn, channel, flag, up, vertex, *change)?;
  • edit in libpijul/src/apply.rs at line 377
    [17.956727][17.956727:956816]()
    txn.put_graph_with_rev(channel, n.flag | EdgeFlags::BLOCK, up, vertex, change)?;
  • edit in libpijul/src/apply.rs at line 377
    [17.956727]
    [17.956816]
    debug!("put_graph_with_rev {:?} {:?}", up, vertex);
    put_graph_with_rev(txn, channel, n.flag | EdgeFlags::BLOCK, up, vertex, change)?;
  • edit in libpijul/src/apply.rs at line 381
    [17.956872][17.956872:956932]()
    for (down, alive_parent) in ws.down_context.drain(..) {
  • edit in libpijul/src/apply.rs at line 381
    [17.956872]
    [17.956932]
    for down in ws.down_context.drain(..) {
  • edit in libpijul/src/apply.rs at line 383
    [17.956966][17.956966:957404]()
    if !alive_parent && !n.flag.contains(EdgeFlags::FOLDER) {
    for (change, _) in ws.deleted_by.iter() {
    let flag = n.flag | EdgeFlags::BLOCK | EdgeFlags::DELETED;
    txn.put_graph_with_rev(channel, flag, vertex, down, *change)?;
    }
    } else if n.flag.contains(EdgeFlags::FOLDER) {
    txn.put_graph_with_rev(channel, n.flag | EdgeFlags::BLOCK, vertex, down, change)?;
  • edit in libpijul/src/apply.rs at line 383
    [17.956966]
    [17.957404]
    if n.flag.contains(EdgeFlags::FOLDER) {
    put_graph_with_rev(
    txn,
    channel,
    n.flag | EdgeFlags::BLOCK,
    vertex,
    down,
    change,
    )?;
  • edit in libpijul/src/apply.rs at line 393
    [17.957421][17.957421:957497]()
    txn.put_graph_with_rev(channel, n.flag, vertex, down, change)?;
  • edit in libpijul/src/apply.rs at line 393
    [17.957421]
    [17.957497]
    put_graph_with_rev(
    txn,
    channel,
    n.flag - EdgeFlags::BLOCK,
    vertex,
    down,
    change,
    )?;
  • edit in libpijul/src/apply.rs at line 419
    [17.957945][17.957945:957995]()
    let k = txn.find_block_end(channel, up)?;
  • edit in libpijul/src/apply.rs at line 419
    [17.957945]
    [17.957995]
    let k = find_block_end(txn, channel, up)?;
  • edit in libpijul/src/apply.rs at line 430
    [17.958453][17.958453:958502]()
    txn.split_block(channel, k, up.pos)?
  • edit in libpijul/src/apply.rs at line 430
    [17.958453]
    [17.958502]
    split_block(txn, channel, k, up.pos)?
  • edit in libpijul/src/apply.rs at line 439
    [17.958670][17.958670:959143]()
    let flag0 = EdgeFlags::PARENT | EdgeFlags::DELETED;
    let flag1 = flag0 | EdgeFlags::FOLDER | EdgeFlags::BLOCK;
    for parent in txn.iter_adjacent(&channel, up_vertex, flag0, flag1) {
    // This unwrap is ok: `parent` is in the channel.
    let introduced_by = txn.get_external(parent.introduced_by).unwrap();
    if !ch.knows(&introduced_by) {
    ws.deleted_by
    .insert((parent.introduced_by, parent.flag - EdgeFlags::PARENT));
  • edit in libpijul/src/apply.rs at line 439
    [17.958670]
    [17.959143]
    let flag0 = EdgeFlags::PARENT | EdgeFlags::BLOCK;
    let flag1 = flag0 | EdgeFlags::DELETED | EdgeFlags::FOLDER;
    for parent in iter_adjacent(txn, &channel, up_vertex, flag0, flag1) {
    if parent
    .flag
    .contains(EdgeFlags::PARENT | EdgeFlags::DELETED | EdgeFlags::BLOCK)
    {
    // This unwrap is ok: `parent` is in the channel.
    let introduced_by = txn.get_external(parent.introduced_by).unwrap();
    if !ch.knows(&introduced_by) {
    ws.deleted_by
    .insert((parent.introduced_by, parent.flag - EdgeFlags::PARENT));
    }
    } else if parent.flag.contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) {
    // This vertex is alive, even if its parent is in conflict.
    debug!("up_context: alive {:?} {:?}", up_vertex, parent);
    break;
  • edit in libpijul/src/apply.rs at line 470
    [17.959495][17.959495:959540]()
    let k = txn.find_block(&channel, down)?;
  • edit in libpijul/src/apply.rs at line 470
    [17.959495]
    [17.959540]
    let k = find_block(txn, &channel, down)?;
  • edit in libpijul/src/apply.rs at line 486
    [17.960068][17.960068:960115]()
    txn.split_block(channel, k, down.pos)?
  • edit in libpijul/src/apply.rs at line 486
    [17.960068]
    [17.960115]
    split_block(txn, channel, k, down.pos)?
  • edit in libpijul/src/apply.rs at line 494
    [17.960275]
    [17.960275]
  • edit in libpijul/src/apply.rs at line 497
    [17.960393][17.960393:960555]()
    let mut alive_parent = false;
    for parent in txn.iter_adjacent(&channel, down_vertex, flag0, flag1) {
    if parent.flag.contains(EdgeFlags::PARENT) {
  • edit in libpijul/src/apply.rs at line 497
    [17.960393]
    [17.960555]
    for parent in iter_adjacent(txn, &channel, down_vertex, flag0, flag1) {
    if parent.flag.contains(EdgeFlags::PARENT | EdgeFlags::BLOCK) {
  • edit in libpijul/src/apply.rs at line 507
    [17.960974][17.960974:961010]()
    alive_parent = true
  • edit in libpijul/src/apply.rs at line 507
    [17.960974]
    [17.961010]
    // This parent is alive
    break;
  • edit in libpijul/src/apply.rs at line 512
    [17.961040][17.961040:961095]()
    ws.down_context.push((down_vertex, alive_parent));
  • edit in libpijul/src/apply.rs at line 512
    [17.961040]
    [17.961095]
    ws.down_context.push(down_vertex);
  • edit in libpijul/src/apply.rs at line 522
    [17.961430][17.961430:961479]()
    down_context: Vec<(Vertex<ChangeId>, bool)>,
  • edit in libpijul/src/apply.rs at line 522
    [17.961430]
    [17.961479]
    down_context: Vec<Vertex<ChangeId>>,
  • edit in libpijul/src/apply.rs at line 594
    [17.963553][17.963553:963637]()
    let n_introduced_by = if let Some(n) = txn.internal(&n.introduced_by, change) {
  • edit in libpijul/src/apply.rs at line 594
    [17.963553]
    [17.963637]
    let n_introduced_by = if let Some(n) = internal(txn, &n.introduced_by, change) {
  • edit in libpijul/src/apply.rs at line 624
    [17.964639][17.964639:964696]()
    txn.split_block(channel, target, n.to.end)?;
  • edit in libpijul/src/apply.rs at line 624
    [17.964639]
    [17.964696]
    split_block(txn, channel, target, n.to.end)?;
  • edit in libpijul/src/apply.rs at line 637
    [17.965101][17.965101:965198]()
    let del = txn.del_graph_with_rev(channel, n.previous, source, target, n_introduced_by)?;
  • edit in libpijul/src/apply.rs at line 637
    [17.965101]
    [17.965198]
    let del = del_graph_with_rev(txn, channel, n.previous, source, target, n_introduced_by)?;
  • edit in libpijul/src/apply.rs at line 651
    [17.965798][17.965798:965876]()
    txn.put_graph_with_rev(channel, n.flag, source, target, change)?;
  • edit in libpijul/src/apply.rs at line 651
    [17.965798]
    [17.965876]
    put_graph_with_rev(txn, channel, n.flag, source, target, change)?;
  • edit in libpijul/src/apply.rs at line 660
    [17.966024][17.966024:966085]()
    target = txn.find_block(channel, target.end_pos())?;
  • edit in libpijul/src/apply.rs at line 660
    [17.966024]
    [17.966085]
    target = find_block(txn, channel, target.end_pos())?;
  • edit in libpijul/src/apply.rs at line 677
    [17.966496][17.966496:966582]()
    let mut source = txn.find_block_end(&channel, txn.internal_pos(&from, change)?)?;
  • edit in libpijul/src/apply.rs at line 677
    [17.966496]
    [17.966582]
    let mut source = find_block_end(txn, &channel, internal_pos(txn, &from, change)?)?;
  • edit in libpijul/src/apply.rs at line 699
    [17.967280][17.967280:967333]()
    txn.split_block(channel, source, from.pos)?;
  • edit in libpijul/src/apply.rs at line 699
    [17.967280]
    [17.967333]
    split_block(txn, channel, source, from.pos)?;
  • edit in libpijul/src/apply.rs at line 714
    [17.967650][17.967650:967711]()
    let to_pos = txn.internal_pos(&to.start_pos(), change)?;
  • edit in libpijul/src/apply.rs at line 714
    [17.967650]
    [17.967711]
    let to_pos = internal_pos(txn, &to.start_pos(), change)?;
  • edit in libpijul/src/apply.rs at line 716
    [17.967745][17.967745:967800]()
    let mut target = txn.find_block(channel, to_pos)?;
  • edit in libpijul/src/apply.rs at line 716
    [17.967745]
    [17.967800]
    let mut target = find_block(txn, channel, to_pos)?;
  • edit in libpijul/src/apply.rs at line 738
    [17.968473][17.968473:968526]()
    txn.split_block(channel, target, to.start)?;
  • edit in libpijul/src/apply.rs at line 738
    [17.968473]
    [17.968526]
    split_block(txn, channel, target, to.start)?;
  • edit in libpijul/src/apply.rs at line 751
    [17.968841][17.968841:968873]()
    for e in txn.iter_adjacent(
  • edit in libpijul/src/apply.rs at line 751
    [17.968841]
    [17.968873]
    for e in iter_adjacent(
    txn,
  • edit in libpijul/src/apply.rs at line 761
    [17.969142][17.969142:969250]()
    let p = txn.find_block_end(channel, e.dest)?;
    if txn.is_alive(channel, p) {
  • edit in libpijul/src/apply.rs at line 761
    [17.969142]
    [17.969250]
    let p = find_block_end(txn, channel, e.dest)?;
    if is_alive(txn, channel, p) {
  • edit in libpijul/src/apply.rs at line 766
    [17.969334][17.969334:969392]()
    let p = txn.find_block(channel, e.dest)?;
  • edit in libpijul/src/apply.rs at line 766
    [17.969334]
    [17.969392]
    let p = find_block(txn, channel, e.dest)?;
  • edit in libpijul/src/apply.rs at line 826
    [17.970979][17.970979:971153]()
    if p != *c && txn.is_alive(channel, p) && txn.is_alive(channel, *c) {
    txn.put_graph_with_rev(channel, EdgeFlags::PSEUDO, p, *c, ChangeId::ROOT)?;
  • edit in libpijul/src/apply.rs at line 826
    [17.970979]
    [17.971153]
    if p != *c && is_alive(txn, channel, p) && is_alive(txn, channel, *c) {
    put_graph_with_rev(txn, channel, EdgeFlags::PSEUDO, p, *c, ChangeId::ROOT)?;
  • edit in libpijul/src/apply.rs at line 844
    [17.971697][17.971697:971765]()
    if let Ok(dest) = txn.find_block_end(channel, p.dest) {
  • edit in libpijul/src/apply.rs at line 844
    [17.971697]
    [17.971765]
    if let Ok(dest) = find_block_end(txn, channel, p.dest) {
  • edit in libpijul/src/apply.rs at line 850
    [17.971879][17.971879:971943]()
    if let Ok(dest) = txn.find_block(channel, p.dest) {
  • edit in libpijul/src/apply.rs at line 850
    [17.971879]
    [17.971943]
    if let Ok(dest) = find_block(txn, channel, p.dest) {
  • edit in libpijul/src/apply.rs at line 856
    [17.972051][17.972051:972425]()
    let a_is_alive = a.is_root()
    || txn
    .iter_adjacent(
    channel,
    a,
    EdgeFlags::PARENT,
    EdgeFlags::all() - EdgeFlags::DELETED,
    )
    .filter(|e| !e.flag.contains(EdgeFlags::PSEUDO))
    .next()
    .is_some();
  • edit in libpijul/src/apply.rs at line 857
    [17.972426][17.972426:972799]()
    let b_is_alive = b.is_root()
    || txn
    .iter_adjacent(
    channel,
    b,
    EdgeFlags::PARENT,
    EdgeFlags::all() - EdgeFlags::DELETED,
    )
    .filter(|e| !e.flag.contains(EdgeFlags::PSEUDO))
    .next()
    .is_some();
  • edit in libpijul/src/apply.rs at line 857
    [17.972426]
    [17.972799]
    let a_is_alive = is_alive(txn, channel, a);
    let b_is_alive = is_alive(txn, channel, b);
  • edit in libpijul/src/apply.rs at line 864
    [17.972961][17.972961:973004]()
    if txn.del_graph_with_rev(
  • edit in libpijul/src/apply.rs at line 864
    [17.972961]
    [17.973004]
    if del_graph_with_rev(
    txn,
  • edit in libpijul/src/apply.rs at line 885
    [17.973638][17.973638:973739]()
    if txn.del_graph_with_rev(channel, p.flag - EdgeFlags::PARENT, a, b, p.introduced_by)? {
  • edit in libpijul/src/apply.rs at line 885
    [17.973638]
    [17.973739]
    if del_graph_with_rev(
    txn,
    channel,
    p.flag - EdgeFlags::PARENT,
    a,
    b,
    p.introduced_by,
    )? {
  • edit in libpijul/src/apply.rs at line 905
    [17.974125][17.974125:974222]()
    txn.del_graph_with_rev(channel, p.flag - EdgeFlags::PARENT, a, b, p.introduced_by)?;
  • edit in libpijul/src/apply.rs at line 905
    [17.974125]
    [17.974222]
    del_graph_with_rev(
    txn,
    channel,
    p.flag - EdgeFlags::PARENT,
    a,
    b,
    p.introduced_by,
    )?;
  • edit in libpijul/src/apply.rs at line 937
    [17.975038][17.975038:975132]()
    let up = txn.find_block_end(channel, txn.internal_pos(&up, change_id)?)?;
  • edit in libpijul/src/apply.rs at line 937
    [17.975038]
    [17.975132]
    let up = find_block_end(txn, channel, internal_pos(txn, &up, change_id)?)?;
  • edit in libpijul/src/apply.rs at line 939
    [17.975133][17.975133:975185]()
    if !txn.is_alive(channel, up) {
  • edit in libpijul/src/apply.rs at line 939
    [17.975133]
    [17.975185]
    if !is_alive(txn, channel, up) {
  • edit in libpijul/src/apply.rs at line 954
    [17.975797][17.975797:976346]()
    let down = txn.find_block(channel, txn.internal_pos(&down, change_id)?)?;
    if txn
    .iter_adjacent(
    channel,
    down,
    EdgeFlags::PARENT,
    EdgeFlags::all() - EdgeFlags::DELETED,
    )
    .filter(|e| e.introduced_by != change_id)
    .next()
    .is_none()
  • edit in libpijul/src/apply.rs at line 954
    [17.975797]
    [17.976346]
    let down = find_block(txn, channel, internal_pos(txn, &down, change_id)?)?;
    if iter_adjacent(
    txn,
    channel,
    down,
    EdgeFlags::PARENT,
    EdgeFlags::all() - EdgeFlags::DELETED,
    )
    .filter(|e| e.introduced_by != change_id)
    .next()
    .is_none()
  • edit in libpijul/src/apply.rs at line 1078
    [17.980262][17.980262:980317]()
    for ee in txn.iter_adjacent(channel, to, f0, f1) {
  • edit in libpijul/src/apply.rs at line 1078
    [17.980262]
    [17.980317]
    for ee in iter_adjacent(txn, channel, to, f0, f1) {
  • edit in libpijul/src/apply.rs at line 1085
    [17.980470][17.980470:980558]()
    let from = txn.find_block_end(channel, txn.internal_pos(&e.from, change_id)?)?;
  • edit in libpijul/src/apply.rs at line 1085
    [17.980470]
    [17.980558]
    let from = find_block_end(txn, channel, internal_pos(txn, &e.from, change_id)?)?;
  • edit in libpijul/src/apply.rs at line 1087
    [17.980617][17.980617:980649]()
    txn.put_graph_with_rev(
  • edit in libpijul/src/apply.rs at line 1087
    [17.980617]
    [17.980649]
    put_graph_with_rev(
    txn,
  • edit in libpijul/src/apply.rs at line 1136
    [17.981880][17.981880:981980]()
    for parent in txn.iter_adjacent(channel, to, f, f | EdgeFlags::PSEUDO | EdgeFlags::BLOCK) {
  • edit in libpijul/src/apply.rs at line 1136
    [17.981880]
    [17.981980]
    for parent in iter_adjacent(
    txn,
    channel,
    to,
    f,
    f | EdgeFlags::PSEUDO | EdgeFlags::BLOCK,
    ) {
  • edit in libpijul/src/apply.rs at line 1144
    [17.982036][17.982036:982104]()
    let parent = txn.find_block_end(channel, parent.dest)?;
  • edit in libpijul/src/apply.rs at line 1144
    [17.982036]
    [17.982104]
    let parent = find_block_end(txn, channel, parent.dest)?;
  • edit in libpijul/src/alive/retrieve.rs at line 35
    [17.985787][17.985787:985823]()
    for e in txn.iter_adjacent(
  • edit in libpijul/src/alive/retrieve.rs at line 35
    [17.985787]
    [17.985823]
    for e in crate::pristine::iter_adjacent(
    txn,
  • edit in libpijul/src/alive/retrieve.rs at line 44
    [17.986065][17.986065:986386]()
    let n = VertexId(graph.lines.len());
    ent.insert(n);
    let alive = new_vertex(txn, channel, e.dest);
    graph.total_bytes += alive.vertex.len();
    graph.lines.push(alive);
    stack.push(n);
    n
  • edit in libpijul/src/alive/retrieve.rs at line 44
    [17.986065]
    [17.986386]
    if let Some(alive) = new_vertex(txn, channel, e.dest) {
    let n = VertexId(graph.lines.len());
    ent.insert(n);
    graph.total_bytes += alive.vertex.len();
    graph.lines.push(alive);
    stack.push(n);
    n
    } else {
    continue;
    }
  • edit in libpijul/src/alive/retrieve.rs at line 70
    [17.986971][17.986971:987142]()
    fn new_vertex<T: TxnT>(txn: &T, channel: &Channel<T>, pos: Position<ChangeId>) -> AliveVertex {
    let vertex = txn.find_block(&channel, pos).unwrap();
    AliveVertex {
  • edit in libpijul/src/alive/retrieve.rs at line 70
    [17.986971]
    [17.987142]
    fn new_vertex<T: TxnT>(
    txn: &T,
    channel: &Channel<T>,
    pos: Position<ChangeId>,
    ) -> Option<AliveVertex> {
    let vertex = crate::pristine::find_block(txn, &channel, pos).unwrap();
    if crate::pristine::iter_adjacent(
    txn,
    &channel,
  • edit in libpijul/src/alive/retrieve.rs at line 80
    [17.987158][17.987158:987405]()
    flags: if txn
    .iter_adjacent(
    &channel,
    vertex,
    EdgeFlags::PARENT | EdgeFlags::DELETED,
    EdgeFlags::all(),
    )
    .next()
    .is_some()
  • edit in libpijul/src/alive/retrieve.rs at line 80
    [17.987158]
    [17.987405]
    EdgeFlags::PARENT | EdgeFlags::BLOCK,
    EdgeFlags::PARENT | EdgeFlags::BLOCK | EdgeFlags::FOLDER,
    )
    .next()
    .is_none()
    {
    return None;
    }
    Some(AliveVertex {
    vertex,
    flags: if crate::pristine::iter_adjacent(
    txn,
    &channel,
    vertex,
    EdgeFlags::PARENT | EdgeFlags::DELETED | EdgeFlags::BLOCK,
    EdgeFlags::all(),
    )
    .filter(|e| {
    e.flag
    .contains(EdgeFlags::PARENT | EdgeFlags::DELETED | EdgeFlags::BLOCK)
    })
    .next()
    .is_some()
  • edit in libpijul/src/alive/retrieve.rs at line 113
    [17.987594][17.987594:987600]()
    }
  • edit in libpijul/src/alive/retrieve.rs at line 113
    [17.987594]
    [17.987600]
    })
  • edit in libpijul/src/alive/retrieve.rs at line 127
    [17.988137][17.988137:988202]()
    let dest = txn.find_block(&channel, edge.dest).unwrap();
  • edit in libpijul/src/alive/retrieve.rs at line 127
    [17.988137]
    [17.988202]
    let dest = crate::pristine::find_block(txn, &channel, edge.dest).unwrap();
  • edit in libpijul/src/alive/retrieve.rs at line 129
    [17.988306][17.988306:988393]()
    txn.del_graph_with_rev(channel, edge.flag, vertex, dest, edge.introduced_by)?;
  • edit in libpijul/src/alive/retrieve.rs at line 129
    [17.988306]
    [17.988393]
    del_graph_with_rev(txn, channel, edge.flag, vertex, dest, edge.introduced_by)?;
  • edit in libpijul/src/alive/dfs.rs at line 401
    [17.1013839][17.1013839:1013886]()
    && !txn.test_edge(
  • edit in libpijul/src/alive/dfs.rs at line 401
    [17.1013839]
    [17.1013886]
    && !crate::pristine::test_edge(
    txn,
  • edit in libpijul/src/alive/debug.rs at line 62
    [17.1016628][17.1016628:1016729]()
    for (_, v) in txn
    .iter_graph(&channel.graph, line.vertex, None)
  • edit in libpijul/src/alive/debug.rs at line 62
    [17.1016628]
    [17.1016729]
    for (_, v) in crate::pristine::iter_graph(txn, &channel.graph, line.vertex, None)
  • edit in Cargo.nix at line 241
    [17.7873][17.7873:7901]()
    version = "0.3.54";
  • edit in Cargo.nix at line 241
    [17.7873]
    [17.7901]
    version = "0.3.55";
  • edit in Cargo.nix at line 243
    [17.7927][17.7927:8000]()
    sha256 = "0a4zis227slxnpjjdk5rjkp15x4kgaffxpks6hj4msfln93d7aib";
  • edit in Cargo.nix at line 243
    [17.7927]
    [17.8000]
    sha256 = "161mc9ii12n7pha3m4ggrj3k4jxam2474jsdpfdizc459hs40lgg";
  • edit in Cargo.nix at line 291
    [17.9647][17.9647:9670]()
    "base64" = rec {
  • edit in Cargo.nix at line 291
    [17.9647]
    [17.9670]
    "base64 0.12.3" = rec {
  • edit in Cargo.nix at line 305
    [17.10081]
    [17.10081]
    "base64 0.13.0" = rec {
    crateName = "base64";
    version = "0.13.0";
    edition = "2018";
    sha256 = "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch";
    authors = [
    "Alice Maz <alice@alicemaz.com>"
    "Marshall Pierce <marshall@mpierce.org>"
    ];
    features = {
    "default" = [ "std" ];
    };
    resolvedDefaultFeatures = [ "default" "std" ];
    };
  • edit in Cargo.nix at line 618
    [17.18413][17.83:111]()
    version = "1.0.63";
  • edit in Cargo.nix at line 618
    [17.18413]
    [17.18441]
    version = "1.0.65";
  • edit in Cargo.nix at line 621
    [17.18490][17.112:185]()
    sha256 = "11xc6jcmj6lb51v5ph458fs64lsy4hhiissnx90dpix2nm06375d";
  • edit in Cargo.nix at line 621
    [17.18490]
    [17.18563]
    sha256 = "05famj6kp81wvq3xcw7isf564idkjlkdi37lpaa26mgpr1c26xcm";
  • edit in Cargo.nix at line 983
    [17.29073]
    [17.29073]
    }
    ];
    };
    "console_error_panic_hook" = rec {
    crateName = "console_error_panic_hook";
    version = "0.1.6";
    edition = "2015";
    sha256 = "04d2narcrzk9bnddz17rr2l819l82pr0h6d98s2w9q236n87dndq";
    authors = [
    "Nick Fitzgerald <fitzgen@gmail.com>"
    ];
    dependencies = [
    {
    name = "cfg-if";
    packageId = "cfg-if 0.1.10";
  • edit in Cargo.nix at line 1000
    [17.29085]
    [17.29085]
    {
    name = "wasm-bindgen";
    packageId = "wasm-bindgen";
    }
    ];
    };
    "const_fn" = rec {
    crateName = "const_fn";
    version = "0.4.3";
    edition = "2018";
    sha256 = "1axgb6p2b0mdazi000vf0hd7hky690s052bwnizz3klx09p86y64";
    procMacro = true;
    authors = [
    "Taiki Endo <te316e89@gmail.com>"
  • edit in Cargo.nix at line 1084
    [17.31083][17.31083:31115]()
    "crossbeam-utils" = rec {
  • edit in Cargo.nix at line 1084
    [17.31083]
    [17.31115]
    "crossbeam-utils 0.7.2" = rec {
  • edit in Cargo.nix at line 1096
    [17.31463]
    [17.31463]
    }
    {
    name = "lazy_static";
    packageId = "lazy_static";
    optional = true;
    }
    ];
    buildDependencies = [
    {
    name = "autocfg";
    packageId = "autocfg";
    }
    ];
    features = {
    "default" = [ "std" ];
    "std" = [ "lazy_static" ];
    };
    resolvedDefaultFeatures = [ "default" "lazy_static" "std" ];
    };
    "crossbeam-utils 0.8.0" = rec {
    crateName = "crossbeam-utils";
    version = "0.8.0";
    edition = "2018";
    sha256 = "199ywwmkg60kqavhw8rhy9wybsfjr9p5czinhq56jprmk06m94gc";
    authors = [
    "The Crossbeam Project Developers"
    ];
    dependencies = [
    {
    name = "cfg-if";
    packageId = "cfg-if 1.0.0";
    }
    {
    name = "const_fn";
    packageId = "const_fn";
  • edit in Cargo.nix at line 1386
    [17.38781][17.38781:39050]()
    ];
    };
    "dtoa" = rec {
    crateName = "dtoa";
    version = "0.4.6";
    edition = "2015";
    sha256 = "0as2dja7bpv5mnqbji2il9yjggzgh4k27x5shjdxpnlb0bs52j8k";
    authors = [
    "David Tolnay <dtolnay@gmail.com>"
  • edit in Cargo.nix at line 1516
    [17.42736]
    [17.42736]
    };
    "errno" = rec {
    crateName = "errno";
    version = "0.2.7";
    edition = "2015";
    sha256 = "1zj6rra8n7d7gagppvvs5pvrfblad6x4ln5knb4kg7dfkkxz4s7s";
    authors = [
    "Chris Wong <lambda.fairy@gmail.com>"
    ];
    dependencies = [
    {
    name = "errno-dragonfly";
    packageId = "errno-dragonfly";
    target = { target, features }: (target."os" == "dragonfly");
    }
    {
    name = "libc";
    packageId = "libc";
    target = { target, features }: (target."os" == "hermit");
    }
    {
    name = "libc";
    packageId = "libc";
    target = { target, features }: (target."os" == "wasi");
    }
    {
    name = "libc";
    packageId = "libc";
    target = { target, features }: target."unix";
    }
    {
    name = "winapi";
    packageId = "winapi 0.3.9";
    target = { target, features }: target."windows";
    features = [ "errhandlingapi" "minwindef" "ntdef" "winbase" ];
    }
    ];
  • edit in Cargo.nix at line 1555
    [17.42745]
    [17.42745]
    "errno-dragonfly" = rec {
    crateName = "errno-dragonfly";
    version = "0.1.1";
    edition = "2015";
    sha256 = "0rshlc00nv45f14v2l1w0ma2nf1jg5j7q9pvw7hh018r6r73bjhl";
    authors = [
    "Michael Neumann <mneumann@ntecs.de>"
    ];
    dependencies = [
    {
    name = "libc";
    packageId = "libc";
    }
    ];
    buildDependencies = [
    {
    name = "gcc";
    packageId = "gcc";
    }
    ];
    };
  • edit in Cargo.nix at line 2080
    [17.59074]
    [17.59074]
    };
    "gcc" = rec {
    crateName = "gcc";
    version = "0.3.55";
    edition = "2015";
    crateBin = [];
    sha256 = "1hng1sajn4r67hndvhjysswz8niayjwvcj42zphpxzhbz89kjpwg";
    authors = [
    "Alex Crichton <alex@alexcrichton.com>"
    ];
    features = {
    "parallel" = [ "rayon" ];
    };
  • edit in Cargo.nix at line 2710
    [17.76123][17.76123:76151]()
    version = "0.4.16";
  • edit in Cargo.nix at line 2710
    [17.76123]
    [17.76151]
    version = "0.4.17";
  • edit in Cargo.nix at line 2712
    [17.76177][17.76177:76250]()
    sha256 = "0wpcv4qgfzcyzydhlqa2qr56j72fj1a66s11xzdji59898mbzp12";
  • edit in Cargo.nix at line 2712
    [17.76177]
    [17.76250]
    sha256 = "1347mxd0cwiidcl0qvixl7za524x5ds0izv8vjh2df0bqr2zp1xj";
  • edit in Cargo.nix at line 2719
    [17.76403][17.76403:76446]()
    packageId = "crossbeam-utils";
  • edit in Cargo.nix at line 2719
    [17.76403]
    [17.76446]
    packageId = "crossbeam-utils 0.8.0";
  • edit in Cargo.nix at line 3198
    [17.89301][17.89301:89329]()
    version = "0.2.19";
  • edit in Cargo.nix at line 3198
    [17.89301]
    [17.89329]
    version = "0.2.20";
  • edit in Cargo.nix at line 3200
    [17.89355][17.89355:89428]()
    sha256 = "0mkhw4pksbz7gldj8hia7k6npc479n1x09i8r0pm275sac424ina";
  • edit in Cargo.nix at line 3200
    [17.89355]
    [17.89428]
    sha256 = "1kn4px7rczgday5lf48qzi2w65iq4x8mldpsvywyj6zawwzv2h6z";
  • edit in Cargo.nix at line 3206
    [17.89604]
    [17.89604]
    "Matteo Bigoi <bigo@crisidev.org>"
  • edit in Cargo.nix at line 3962
    [17.111574]
    [17.111574]
    "pager" = rec {
    crateName = "pager";
    version = "0.16.0";
    edition = "2018";
    sha256 = "0s0r95q3jfbh2c3paab2bpl158lyaq35xnzy1x7mrdfhy26d1iq5";
    authors = [
    "Cyril Plisko <cyril.plisko@mountall.com>"
    ];
    dependencies = [
    {
    name = "errno";
    packageId = "errno";
    }
    {
    name = "libc";
    packageId = "libc";
    }
    ];
    features = {
    };
    };
  • edit in Cargo.nix at line 4162
    [17.116650]
    [17.116650]
    name = "pager";
    packageId = "pager";
    }
    {
  • edit in Cargo.nix at line 4348
    [17.121279][17.121279:121312]()
    "pin-project-lite" = rec {
  • edit in Cargo.nix at line 4348
    [17.121279]
    [17.121312]
    "pin-project-lite 0.1.11" = rec {
  • edit in Cargo.nix at line 4353
    [17.121479]
    [17.121479]
    authors = [
    "Taiki Endo <te316e89@gmail.com>"
    ];
    };
    "pin-project-lite 0.2.0" = rec {
    crateName = "pin-project-lite";
    version = "0.2.0";
    edition = "2018";
    sha256 = "070klqy200alrhxb79fxarrrrn0vbwg95dmqw9062vhqxibky1kb";
  • edit in Cargo.nix at line 4788
    [17.134739][17.134739:134767]()
    version = "0.10.8";
  • edit in Cargo.nix at line 4788
    [17.134739]
    [17.134767]
    version = "0.10.9";
  • edit in Cargo.nix at line 4790
    [17.134793][17.134793:134866]()
    sha256 = "07nnj0qzj8g64iagx7xzk02493yqdahqy49xa2vkif6pqmxa3sp9";
  • edit in Cargo.nix at line 4790
    [17.134793]
    [17.134866]
    sha256 = "1km0p40hr3n1xkifnaw65v04v43pqr2sdn3qynh5c8vrbhjxc5gv";
  • edit in Cargo.nix at line 4797
    [17.135012][17.135012:135046]()
    packageId = "base64";
  • edit in Cargo.nix at line 4797
    [17.135012]
    [17.135046]
    packageId = "base64 0.13.0";
  • edit in Cargo.nix at line 4886
    [17.137876][17.137876:137920]()
    packageId = "pin-project-lite";
  • edit in Cargo.nix at line 4886
    [17.137876]
    [17.137920]
    packageId = "pin-project-lite 0.2.0";
  • edit in Cargo.nix at line 4923
    [17.139039]
    [17.139039]
    target = { target, features }: (target."arch" == "wasm32");
    }
    {
    name = "wasm-bindgen-test";
    packageId = "wasm-bindgen-test";
  • edit in Cargo.nix at line 4934
    [17.139272][17.139272:139404]()
    features = [ "Headers" "Request" "RequestInit" "RequestMode" "Response" "Window" "FormData" "Blob" "BlobPropertyBag" ];
  • edit in Cargo.nix at line 4934
    [17.139272]
    [17.139404]
    features = [ "Headers" "Request" "RequestInit" "RequestMode" "Response" "Window" "FormData" "Blob" "BlobPropertyBag" "ServiceWorkerGlobalScope" ];
  • edit in Cargo.nix at line 4965
    [17.140308]
    [17.140308]
    "__rustls" = [ "hyper-rustls" "tokio-rustls" "rustls" "__tls" ];
  • edit in Cargo.nix at line 4975
    [17.140893][17.140893:140985]()
    "rustls-tls" = [ "hyper-rustls" "tokio-rustls" "webpki-roots" "rustls" "__tls" ];
  • edit in Cargo.nix at line 4975
    [17.140893]
    [17.140985]
    "rustls-tls" = [ "rustls-tls-webpki-roots" ];
    "rustls-tls-manual-roots" = [ "__rustls" ];
    "rustls-tls-native-roots" = [ "rustls-native-certs" "__rustls" ];
    "rustls-tls-webpki-roots" = [ "webpki-roots" "__rustls" ];
  • edit in Cargo.nix at line 5019
    [17.142321][17.142321:142355]()
    packageId = "base64";
  • edit in Cargo.nix at line 5019
    [17.142321]
    [17.142355]
    packageId = "base64 0.12.3";
  • edit in Cargo.nix at line 5031
    [17.142623][17.142623:142666]()
    packageId = "crossbeam-utils";
  • edit in Cargo.nix at line 5031
    [17.142623]
    [17.142666]
    packageId = "crossbeam-utils 0.7.2";
  • edit in Cargo.nix at line 5157
    [17.146145]
    [17.146145]
    "scoped-tls" = rec {
    crateName = "scoped-tls";
    version = "1.0.0";
    edition = "2015";
    sha256 = "1hj8lifzvivdb1z02lfnzkshpvk85nkgzxsy2hc0zky9wf894spa";
    authors = [
    "Alex Crichton <alex@alexcrichton.com>"
    ];
    };
  • edit in Cargo.nix at line 5341
    [17.151355][17.151355:151481]()
    version = "0.6.1";
    edition = "2015";
    sha256 = "15rcwfkff0md5i231m2ym5756ksw1mkh5b5g2rw72wsc5mzdgicy";
  • edit in Cargo.nix at line 5341
    [17.151355]
    [17.151481]
    version = "0.7.0";
    edition = "2018";
    sha256 = "1s9wnjrak5a0igfhcghhz51kvi7n010j5rs9lmhd5hfrz2kmgypd";
  • edit in Cargo.nix at line 5349
    [17.151596][17.151596:151655]()
    name = "dtoa";
    packageId = "dtoa";
  • edit in Cargo.nix at line 5349
    [17.151596]
    [17.151655]
    name = "form_urlencoded";
    packageId = "form_urlencoded";
  • edit in Cargo.nix at line 5357
    [17.151762][17.151762:151823]()
    name = "serde";
    packageId = "serde";
  • edit in Cargo.nix at line 5357
    [17.151762]
    [17.151823]
    name = "ryu";
    packageId = "ryu";
  • edit in Cargo.nix at line 5361
    [17.151847][17.151847:151904]()
    name = "url";
    packageId = "url";
  • edit in Cargo.nix at line 5361
    [17.151847]
    [17.151904]
    name = "serde";
    packageId = "serde";
  • edit in Cargo.nix at line 5400
    [17.152827][17.152827:152855]()
    version = "0.3.16";
  • edit in Cargo.nix at line 5400
    [17.152827]
    [17.152855]
    version = "0.3.17";
  • edit in Cargo.nix at line 5402
    [17.152881][17.152881:152954]()
    sha256 = "17a2kqg5dg6gqhahsq0446h4izbibv38jm1mbym8na49qfavgn3z";
  • edit in Cargo.nix at line 5402
    [17.152881]
    [17.152954]
    sha256 = "00k98q2ab98j9ffmmsh0wlwck2apy83a7v5bfy122apfpmx98a9c";
  • edit in Cargo.nix at line 5409
    [17.153101][17.153101:153142]()
    packageId = "cfg-if 0.1.10";
  • edit in Cargo.nix at line 5409
    [17.153101]
    [17.153142]
    packageId = "cfg-if 1.0.0";
  • edit in Cargo.nix at line 5469
    [17.154961][17.154961:154989]()
    version = "1.0.48";
  • edit in Cargo.nix at line 5469
    [17.154961]
    [17.154989]
    version = "1.0.50";
  • edit in Cargo.nix at line 5471
    [17.155015][17.155015:155088]()
    sha256 = "1b0rdf7rvgc8am2n36yi8wys7kpdg8ly9891l917yizwxzzildyc";
  • edit in Cargo.nix at line 5471
    [17.155015]
    [17.155088]
    sha256 = "1xph2b437ac56gn85ndlc074mmr1v89cwdny3cg8anlwf5w42fs4";
  • edit in Cargo.nix at line 5926
    [17.167331][17.167331:167358]()
    version = "1.0.1";
  • edit in Cargo.nix at line 5926
    [17.167331]
    [17.167358]
    version = "1.1.0";
  • edit in Cargo.nix at line 5928
    [17.167384][17.167384:167457]()
    sha256 = "0xc5wbmd3had09zj52ms6zlx7z9g219cb3faaanx41pm0dlkd2mp";
  • edit in Cargo.nix at line 5928
    [17.167384]
    [17.167457]
    sha256 = "0vva61rhzvgyvc0n6vbjn8a2q3mm5wlfrapyx08blbxlkv0xpy6c";
  • edit in Cargo.nix at line 6016
    [17.169726][17.169726:169770]()
    packageId = "pin-project-lite";
  • edit in Cargo.nix at line 6016
    [17.169726]
    [17.169770]
    packageId = "pin-project-lite 0.1.11";
  • edit in Cargo.nix at line 6132
    [17.173478][17.173478:173522]()
    packageId = "pin-project-lite";
  • edit in Cargo.nix at line 6132
    [17.173478]
    [17.173522]
    packageId = "pin-project-lite 0.1.11";
  • edit in Cargo.nix at line 6204
    [17.175437][17.175437:175481]()
    packageId = "pin-project-lite";
  • edit in Cargo.nix at line 6204
    [17.175437]
    [17.175481]
    packageId = "pin-project-lite 0.1.11";
  • edit in Cargo.nix at line 6771
    [17.192186]
    [17.192186]
    "wasm-bindgen-test" = rec {
    crateName = "wasm-bindgen-test";
    version = "0.3.18";
    edition = "2018";
    sha256 = "0r3z37d48i91bg2akjzfcpj3a1jbkhcs2l1xfcj7ymcap74cvl9l";
    authors = [
    "The wasm-bindgen Developers"
    ];
    dependencies = [
    {
    name = "console_error_panic_hook";
    packageId = "console_error_panic_hook";
    }
    {
    name = "js-sys";
    packageId = "js-sys";
    }
    {
    name = "scoped-tls";
    packageId = "scoped-tls";
    }
    {
    name = "wasm-bindgen";
    packageId = "wasm-bindgen";
    }
    {
    name = "wasm-bindgen-futures";
    packageId = "wasm-bindgen-futures";
    }
    {
    name = "wasm-bindgen-test-macro";
    packageId = "wasm-bindgen-test-macro";
    }
    ];
    };
    "wasm-bindgen-test-macro" = rec {
    crateName = "wasm-bindgen-test-macro";
    version = "0.3.18";
    edition = "2018";
    sha256 = "11d5w6wdjd2if1n7jrjvhgi52pn094m51nxpn65fwfblprkrryz8";
    procMacro = true;
    authors = [
    "The wasm-bindgen Developers"
    ];
    dependencies = [
    {
    name = "proc-macro2";
    packageId = "proc-macro2";
    }
    {
    name = "quote";
    packageId = "quote";
    }
    ];
    };
  • edit in Cargo.nix at line 7257
    [17.219675][17.219675:219864]()
    resolvedDefaultFeatures = [ "Blob" "BlobPropertyBag" "Event" "EventTarget" "FormData" "Headers" "MessageEvent" "Request" "RequestInit" "RequestMode" "Response" "Window" "Worker" ];
  • edit in Cargo.nix at line 7257
    [17.219675]
    [17.219864]
    resolvedDefaultFeatures = [ "Blob" "BlobPropertyBag" "Event" "EventTarget" "FormData" "Headers" "MessageEvent" "Request" "RequestInit" "RequestMode" "Response" "ServiceWorkerGlobalScope" "Window" "Worker" "WorkerGlobalScope" ];
  • edit in Cargo.nix at line 7479
    [17.226917][17.226917:226944]()
    version = "0.1.1";
  • edit in Cargo.nix at line 7479
    [17.226917]
    [17.226944]
    version = "0.1.2";
  • edit in Cargo.nix at line 7481
    [17.226970][17.226970:227043]()
    sha256 = "0bgcaqcpck6rdw2px3b5zzpxifhfys31g0wc493g1q9w227k183d";
  • edit in Cargo.nix at line 7481
    [17.226970]
    [17.227043]
    sha256 = "1pym7zlahw659b2baxrd0jj7xvhad4anjzcxk5f64cbs4wnsvkvx";