More convenient interface for channels

[?]
Jan 12, 2021, 1:18 PM
3AMEP2Y5J6GA4AWQONF4JVA3XSR3ASLHHKMYG44R72SOUY3UQCDAC

Dependencies

  • [2] G6S6PWZE Do not touch the channel if this is a partial record
  • [3] 27PYHR6L Making the get_latest_touch function (useful to make archives) public in libpijul
  • [4] CXM5CBS2 Fixing `pijul remove` when files are not deleted
  • [5] KQTD46KV Unrecord: restore files *after* having unapplied the *entire* change
  • [6] L4JXJHWX pijul/*: reorganize imports and remove extern crate
  • [7] BONBSXAU Archive mtimes: optimal complexity in all cases
  • [8] UNZXTNSJ Change text format: order dependencies in the order they were on the channel at record time
  • [9] YAJAXIV5 Unrecording changes atomically
  • [10] GVQ7YSED Checking for dependencies even for a local change
  • [11] MU5GSJAW Partial push and pull (WARNING: breaks the existing protocol)
  • [12] 5DVRL6MF Hard-unrecord
  • [13] 6YMDOZIB Refactoring apply
  • [14] DJYHARZ7 Skipping old files when recording
  • [15] SLJ3OHD4 unrecord: show list of changes if none were given as arguments
  • [16] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [17] I3OVP3NH Archive: set the accurate and deterministic mtime
  • [18] QMTANHVN Reset: only output changed files
  • [19] VO5OQW4W Removing anyhow in libpijul
  • [20] 76PCXGML Pushing to, and pulling from the local repository
  • [21] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [22] XA23FMQM Reset only files that have been modified
  • [23] 43AJ37IX Getting rid of edge validation, which does not work for zombie conflicts
  • [24] NA5I4WYN Fixing the inverse of conflict resolutions
  • [25] IM6UFPOZ Fixing a test related to the tree/revtree tables
  • [26] 7PM25EXL Recursive apply was written a little too fast…
  • [27] EGSVRZJV Avoid converting between base32 and hash in pijul::commands::unrecord
  • [28] HMMMKONL Fixing alive vertices
  • [29] 5BRU2RRW Cleanup (debugging a crash related to trees/inodes)
  • [30] I52XSRUH Massive cleanup, and simplification
  • [31] BXD3IQYN Fixing --features git
  • [32] WZVCLZKY address clippy lints
  • [33] GHO6DWPI Refactoring iterators

Change contents

  • edit in pijul/src/commands/unrecord.rs at line 8
    [5.59][5.387:427]()
    use libpijul::pristine::sanakirja::Txn;
  • replacement in pijul/src/commands/unrecord.rs at line 84
    [5.1883][5.428:499]()
    .get_changeset(Txn::changes(&channel_), change_id)
    [5.1883]
    [5.1954]
    .get_changeset(txn.changes(&channel_), change_id)
  • replacement in pijul/src/commands/unrecord.rs at line 99
    [5.96953][5.500:582]()
    if txn.get_changeset(Txn::changes(&channel_), d)?.is_some() {
    [5.96953]
    [5.12073]
    if txn.get_changeset(txn.changes(&channel_), d)?.is_some() {
  • replacement in pijul/src/commands/reset.rs at line 204
    [5.257][5.257:444]()
    fn last_modified<T: ChannelTxnT>(_: &T, channel: &T::Channel) -> std::time::SystemTime {
    std::time::SystemTime::UNIX_EPOCH + std::time::Duration::from_secs(T::last_modified(channel))
    [5.257]
    [5.101744]
    fn last_modified<T: ChannelTxnT>(txn: &T, channel: &T::Channel) -> std::time::SystemTime {
    std::time::SystemTime::UNIX_EPOCH + std::time::Duration::from_secs(txn.last_modified(channel))
  • edit in pijul/src/commands/pushpull.rs at line 10
    [5.111707][5.583:623]()
    use libpijul::pristine::sanakirja::Txn;
  • replacement in pijul/src/commands/pushpull.rs at line 195
    [5.13636][5.624:709]()
    if txn.get_changeset(Txn::changes(&channel), h_int)?.is_none() {
    [5.13636]
    [5.7889]
    if txn.get_changeset(txn.changes(&channel), h_int)?.is_none() {
  • replacement in pijul/src/commands/pushpull.rs at line 343
    [5.7561][5.710:794]()
    .get_changeset(Txn::changes(&channel.borrow()), h_int)?
    [5.7561]
    [5.7644]
    .get_changeset(txn.changes(&channel.borrow()), h_int)?
  • replacement in pijul/src/commands/channel.rs at line 45
    [5.187896][5.988:1071]()
    let name = libpijul::pristine::sanakirja::Txn::name(&channel);
    [5.187896]
    [5.187943]
    let name = txn.name(&channel);
  • replacement in libpijul/src/unrecord/working_copy.rs at line 38
    [5.1134][5.1134:1226]()
    txn.find_block_end(T::graph(channel), internal_pos(txn, &e.from, change_id)?)?;
    [5.1134]
    [5.227128]
    txn.find_block_end(txn.graph(channel), internal_pos(txn, &e.from, change_id)?)?;
  • replacement in libpijul/src/unrecord/working_copy.rs at line 67
    [5.6757][5.1254:1285]()
    T::graph(channel),
    [5.6757]
    [5.6779]
    txn.graph(channel),
  • replacement in libpijul/src/unrecord/working_copy.rs at line 130
    [5.7057][5.1313:1340]()
    T::graph(channel),
    [5.7057]
    [5.7074]
    txn.graph(channel),
  • replacement in libpijul/src/unrecord/working_copy.rs at line 142
    [5.230244][5.1341:1411]()
    .get_changeset(T::changes(channel), e.introduced_by)?
    [5.230244]
    [5.230316]
    .get_changeset(txn.changes(channel), e.introduced_by)?
  • replacement in libpijul/src/unrecord/working_copy.rs at line 157
    [5.230687][5.1412:1471]()
    txn.find_block_end(T::graph(channel), next.unwrap().1)
    [5.230687]
    [5.230736]
    txn.find_block_end(txn.graph(channel), next.unwrap().1)
  • replacement in libpijul/src/unrecord/mod.rs at line 88
    [5.23205][5.1503:1594]()
    let timestamp = if let Some(ts) = txn.get_changeset(T::changes(channel), change_id)? {
    [5.23205]
    [5.233031]
    let timestamp = if let Some(ts) = txn.get_changeset(txn.changes(channel), change_id)? {
  • replacement in libpijul/src/unrecord/mod.rs at line 101
    [5.233292][5.1595:1661]()
    if txn.get_changeset(T::changes(channel), d)?.is_some() {
    [5.233292]
    [5.9344]
    if txn.get_changeset(txn.changes(channel), d)?.is_some() {
  • replacement in libpijul/src/unrecord/mod.rs at line 119
    [5.233799][5.1662:1779]()
    if T::name(&br) != T::name(&channel)
    && txn.get_changeset(T::changes(&br), change_id)?.is_some()
    [5.233799]
    [5.1779]
    if txn.name(&br) != txn.name(&channel)
    && txn.get_changeset(txn.changes(&br), change_id)?.is_some()
  • replacement in libpijul/src/record.rs at line 166
    [5.492412][5.28030:28094]()
    .get_changeset(T::changes(channel), vertex.change)?
    [5.492412]
    [5.492478]
    .get_changeset(txn.changes(channel), vertex.change)?
  • replacement in libpijul/src/record.rs at line 205
    [5.493559][5.28266:28305]()
    T::graph(channel),
    [5.493559]
    [5.493589]
    txn.graph(channel),
  • replacement in libpijul/src/record.rs at line 215
    [4.72][4.72:111]()
    T::graph(channel),
    [4.72]
    [4.111]
    txn.graph(channel),
  • replacement in libpijul/src/record.rs at line 377
    [5.500045][5.28418:28511]()
    for name_ in iter_adjacent(txn, T::graph(channel), vertex.inode_vertex(), f0, f1)? {
    [5.500045]
    [5.33350]
    for name_ in iter_adjacent(txn, txn.graph(channel), vertex.inode_vertex(), f0, f1)? {
  • replacement in libpijul/src/record.rs at line 388
    [5.500452][5.28512:28600]()
    let name_dest = txn.find_block_end(T::graph(channel), name_.dest).unwrap();
    [5.500452]
    [5.500531]
    let name_dest = txn.find_block_end(txn.graph(channel), name_.dest).unwrap();
  • replacement in libpijul/src/record.rs at line 397
    [5.500926][5.28601:28702]()
    if let Some(v_papa) = iter_adjacent(txn, T::graph(channel), name_dest, f0, f1)?.next() {
    [5.500926]
    [5.33752]
    if let Some(v_papa) = iter_adjacent(txn, txn.graph(channel), name_dest, f0, f1)?.next() {
  • replacement in libpijul/src/record.rs at line 425
    [5.502086][5.28703:28742]()
    T::graph(channel),
    [5.502086]
    [5.502116]
    txn.graph(channel),
  • replacement in libpijul/src/record.rs at line 434
    [5.502359][2.316:380]()
    || self.modified_since_last_commit::<T, _>(
    [5.502359]
    [2.380]
    || self.modified_since_last_commit(
    txn,
  • replacement in libpijul/src/record.rs at line 441
    [5.502466][5.28845:28918]()
    let mut ret = retrieve(txn, T::graph(channel), vertex)?;
    [5.502466]
    [5.502529]
    let mut ret = retrieve(txn, txn.graph(channel), vertex)?;
  • replacement in libpijul/src/record.rs at line 473
    [5.28978][5.28978:29013]()
    T::graph(channel),
    [5.28978]
    [5.29013]
    txn.graph(channel),
  • replacement in libpijul/src/record.rs at line 604
    [5.35616][5.29218:29318]()
    self.record_deleted_file(txn, T::graph(channel), working_copy, &full_path, vertex)?
    [5.35616]
    [5.506617]
    self.record_deleted_file(txn, txn.graph(channel), working_copy, &full_path, vertex)?
  • edit in libpijul/src/record.rs at line 616
    [5.1863]
    [5.1863]
    txn: &T,
  • replacement in libpijul/src/record.rs at line 627
    [5.2268][5.2268:2310]()
    T::last_modified(channel)
    [5.2268]
    [5.2310]
    txn.last_modified(channel)
  • replacement in libpijul/src/record.rs at line 632
    [2.601][2.601:667]()
    + 2
    >= T::last_modified(channel))
    [2.601]
    [5.2499]
    > txn.last_modified(channel))
  • replacement in libpijul/src/pristine/sanakirja.rs at line 658
    [5.40642][5.39254:39313]()
    fn graph(c: &Channel) -> &Db<Vertex<ChangeId>, Edge> {
    [5.40642]
    [5.39313]
    fn graph<'a>(&self, c: &'a Self::Channel) -> &'a Db<Vertex<ChangeId>, Edge> {
  • replacement in libpijul/src/pristine/sanakirja.rs at line 661
    [5.39336][5.39336:39371]()
    fn name(c: &Channel) -> &str {
    [5.39336]
    [5.39371]
    fn name<'a>(&self, c: &'a Self::Channel) -> &'a str {
  • replacement in libpijul/src/pristine/sanakirja.rs at line 664
    [5.39401][5.39401:39456]()
    fn apply_counter(channel: &Self::Channel) -> u64 {
    [5.39401]
    [5.39456]
    fn apply_counter(&self, channel: &Self::Channel) -> u64 {
  • replacement in libpijul/src/pristine/sanakirja.rs at line 667
    [5.39492][5.39492:39547]()
    fn last_modified(channel: &Self::Channel) -> u64 {
    [5.39492]
    [5.39547]
    fn last_modified(&self, channel: &Self::Channel) -> u64 {
  • replacement in libpijul/src/pristine/sanakirja.rs at line 670
    [5.39583][5.39583:39645]()
    fn changes(channel: &Self::Channel) -> &Self::Changeset {
    [5.39583]
    [5.39645]
    fn changes<'a>(&self, channel: &'a Self::Channel) -> &'a Self::Changeset {
  • replacement in libpijul/src/pristine/sanakirja.rs at line 673
    [5.39676][5.39676:39745]()
    fn rev_changes(channel: &Self::Channel) -> &Self::RevChangeset {
    [5.39676]
    [5.39745]
    fn rev_changes<'a>(&self, channel: &'a Self::Channel) -> &'a Self::RevChangeset {
  • replacement in libpijul/src/pristine/mod.rs at line 157
    [5.49600][5.49600:49938]()
    fn name(channel: &Self::Channel) -> &str;
    fn graph(channel: &Self::Channel) -> &Self::Graph;
    fn apply_counter(channel: &Self::Channel) -> u64;
    fn last_modified(channel: &Self::Channel) -> u64;
    fn changes(channel: &Self::Channel) -> &Self::Changeset;
    fn rev_changes(channel: &Self::Channel) -> &Self::RevChangeset;
    [5.49600]
    [5.49938]
    fn name<'a>(&self, channel: &'a Self::Channel) -> &'a str;
    fn graph<'a>(&self, channel: &'a Self::Channel) -> &'a Self::Graph;
    fn apply_counter(&self, channel: &Self::Channel) -> u64;
    fn last_modified(&self, channel: &Self::Channel) -> u64;
    fn changes<'a>(&self, channel: &'a Self::Channel) -> &'a Self::Changeset;
    fn rev_changes<'a>(&self, channel: &'a Self::Channel) -> &'a Self::RevChangeset;
  • replacement in libpijul/src/pristine/mod.rs at line 561
    [5.62544][5.52980:53054]()
    T::cursor_revchangeset_ref(txn, T::rev_changes(&channel), Some(from))
    [5.62544]
    [5.40125]
    T::cursor_revchangeset_ref(txn, txn.rev_changes(&channel), Some(from))
  • replacement in libpijul/src/pristine/mod.rs at line 569
    [5.62677][5.53086:53152]()
    .rev_cursor_revchangeset(T::rev_changes(&channel), None)?
    [5.62677]
    [5.40311]
    .rev_cursor_revchangeset(txn.rev_changes(&channel), None)?
  • edit in libpijul/src/pristine/mod.rs at line 584
    [5.63018]
    [5.63018]
    let c = txn.rev_changes(&channel);
  • replacement in libpijul/src/pristine/mod.rs at line 587
    [5.63066][5.53180:53214]()
    T::rev_changes(&channel),
    [5.63066]
    [5.53214]
    c,
  • replacement in libpijul/src/pristine/mod.rs at line 600
    [5.63316][5.53266:53335]()
    Ok(txn.rev_cursor_revchangeset(T::rev_changes(&channel), from)?)
    [5.63316]
    [5.40926]
    Ok(txn.rev_cursor_revchangeset(txn.rev_changes(&channel), from)?)
  • replacement in libpijul/src/pristine/mod.rs at line 614
    [5.63629][5.53372:53468]()
    iter: T::cursor_revchangeset_ref(txn, T::rev_changes(&channel), Some(from_timestamp))?,
    [5.63629]
    [5.41239]
    iter: T::cursor_revchangeset_ref(txn, txn.rev_changes(&channel), Some(from_timestamp))?,
  • replacement in libpijul/src/pristine/mod.rs at line 632
    [5.63962][5.53505:53597]()
    iter: txn.rev_cursor_revchangeset(T::rev_changes(&channel), Some(from_timestamp))?,
    [5.63962]
    [5.41610]
    iter: txn.rev_cursor_revchangeset(txn.rev_changes(&channel), Some(from_timestamp))?,
  • replacement in libpijul/src/pristine/mod.rs at line 739
    [5.44404][5.53939:53994]()
    let done = debug(txn, T::graph(channel), &mut f)?;
    [5.44404]
    [5.44488]
    let done = debug(txn, txn.graph(channel), &mut f)?;
  • replacement in libpijul/src/pristine/mod.rs at line 1184
    [5.623603][5.55161:55254]()
    match is_ancestor_of(self.txn, T::graph(&self.channel), self.key, touched) {
    [5.623603]
    [5.70612]
    match is_ancestor_of(self.txn, self.txn.graph(&self.channel), self.key, touched) {
  • replacement in libpijul/src/pristine/mod.rs at line 1222
    [5.624262][5.55255:55348]()
    match is_ancestor_of(self.txn, T::graph(&self.channel), self.key, touched) {
    [5.624262]
    [5.71642]
    match is_ancestor_of(self.txn, self.txn.graph(&self.channel), self.key, touched) {
  • replacement in libpijul/src/pristine/mod.rs at line 1642
    [2.813][5.3555:3634](),[5.3555][5.3555:3634]()
    for x in T::cursor_revchangeset_ref(txn, T::rev_changes(&c), Some(pos))? {
    [2.813]
    [5.3634]
    for x in T::cursor_revchangeset_ref(txn, txn.rev_changes(&c), Some(pos))? {
  • replacement in libpijul/src/pristine/mod.rs at line 1656
    [5.3892][5.3892:3952]()
    .rev_cursor_revchangeset(T::rev_changes(&c), None)?
    [5.3892]
    [5.3952]
    .rev_cursor_revchangeset(txn.rev_changes(&c), None)?
  • replacement in libpijul/src/pristine/mod.rs at line 1743
    [5.19271][5.56080:56163]()
    let (alive, reachable) = crate::pristine::check_alive(txn, T::graph(channel));
    [5.19271]
    [5.2245]
    let (alive, reachable) = crate::pristine::check_alive(txn, txn.graph(channel));
  • replacement in libpijul/src/pristine/mod.rs at line 1769
    [5.835][5.56164:56335]()
    let graph = crate::alive::retrieve::retrieve(txn, T::graph(channel), file_).unwrap();
    graph.debug(changes, txn, T::graph(channel), false, false, &mut f)?;
    [5.835]
    [5.2938]
    let graph = crate::alive::retrieve::retrieve(txn, txn.graph(channel), file_).unwrap();
    graph.debug(changes, txn, txn.graph(channel), false, false, &mut f)?;
  • replacement in libpijul/src/pristine/mod.rs at line 1773
    [5.906][5.56336:56411]()
    debug_root(txn, T::graph(channel), file.unwrap(), &mut f, false)?;
    [5.906]
    [5.3117]
    debug_root(txn, txn.graph(channel), file.unwrap(), &mut f, false)?;
  • replacement in libpijul/src/pristine/channel_dump.rs at line 132
    [5.653409][5.56803:56892]()
    cursor: match self.txn.iter_graph(T::graph(&self.channel)) {
    [5.653409]
    [5.56892]
    cursor: match self.txn.iter_graph(self.txn.graph(&self.channel)) {
  • replacement in libpijul/src/pristine/channel_dump.rs at line 146
    [5.654008][5.56970:57067]()
    if let Some(x) = self.txn.next_graph(T::graph(&self.channel), &mut cursor) {
    [5.654008]
    [5.79425]
    if let Some(x) = self.txn.next_graph(self.txn.graph(&self.channel), &mut cursor) {
  • replacement in libpijul/src/pristine/channel_dump.rs at line 352
    [5.662172][5.57323:57379]()
    let t = T::apply_counter(&channel);
    [5.662172]
    [5.662223]
    let t = self.txn.apply_counter(&channel);
  • replacement in libpijul/src/output/output.rs at line 77
    [5.674146][5.57742:57769]()
    T::graph(channel),
    [5.674146]
    [5.674163]
    txn.graph(channel),
  • replacement in libpijul/src/output/output.rs at line 86
    [5.674352][5.57770:57866]()
    let dead = collect_dead_files(txn, T::graph(channel), pending_change_id, Inode::ROOT)?;
    [5.674352]
    [5.674437]
    let dead = collect_dead_files(txn, txn.graph(channel), pending_change_id, Inode::ROOT)?;
  • replacement in libpijul/src/output/output.rs at line 104
    [5.9401][5.57867:57935]()
    txn.get_changeset(T::changes(&channel), u.0.change)
    [5.9401]
    [5.675254]
    txn.get_changeset(txn.changes(&channel), u.0.change)
  • replacement in libpijul/src/output/output.rs at line 106
    [5.675284][5.57936:58024]()
    .cmp(&txn.get_changeset(T::changes(&channel), v.0.change).unwrap())
    [5.675284]
    [5.675450]
    .cmp(&txn.get_changeset(txn.changes(&channel), v.0.change).unwrap())
  • replacement in libpijul/src/output/output.rs at line 168
    [5.58056][5.58056:58151]()
    collect_dead_files(txn, T::graph(channel), pending_change_id, inode)?;
    [5.58056]
    [5.677788]
    collect_dead_files(txn, txn.graph(channel), pending_change_id, inode)?;
  • replacement in libpijul/src/output/output.rs at line 179
    [5.678240][5.58152:58195]()
    T::graph(channel),
    [5.678240]
    [5.678273]
    txn.graph(channel),
  • replacement in libpijul/src/output/output.rs at line 311
    [5.83737][4.523:627]()
    crate::fs::rec_delete(txn, file_id.clone(), inode, true).map_err(PristineOutputError::Fs)?;
    [5.83737]
    [5.682528]
    crate::fs::rec_delete(txn, file_id.clone(), inode, true)
    .map_err(PristineOutputError::Fs)?;
  • replacement in libpijul/src/output/output.rs at line 340
    [5.84096][5.58310:58378]()
    let mut l = retrieve(txn, T::graph(channel), output_item.pos)?;
    [5.84096]
    [5.683261]
    let mut l = retrieve(txn, txn.graph(channel), output_item.pos)?;
  • replacement in libpijul/src/output/output.rs at line 347
    [5.683557][5.58379:58453]()
    let dest = txn.find_block(T::graph(channel), edge.dest).unwrap();
    [5.683557]
    [5.683622]
    let dest = txn.find_block(txn.graph(channel), edge.dest).unwrap();
  • replacement in libpijul/src/output/archive.rs at line 137
    [5.692654][5.58559:58587]()
    T::graph(&channel),
    [5.692654]
    [5.692672]
    txn.graph(&channel),
  • replacement in libpijul/src/output/archive.rs at line 155
    [5.693132][5.58588:58656]()
    txn.get_changeset(T::changes(&channel), u.0.change)
    [5.693132]
    [5.693202]
    txn.get_changeset(txn.changes(&channel), u.0.change)
  • replacement in libpijul/src/output/archive.rs at line 157
    [5.693232][5.58657:58745]()
    .cmp(&txn.get_changeset(T::changes(&channel), v.0.change).unwrap())
    [5.693232]
    [5.693398]
    .cmp(&txn.get_changeset(txn.changes(&channel), v.0.change).unwrap())
  • replacement in libpijul/src/output/archive.rs at line 202
    [5.695038][5.58746:58790]()
    T::graph(&channel),
    [5.695038]
    [5.695072]
    txn.graph(&channel),
  • replacement in libpijul/src/output/archive.rs at line 211
    [5.1275][5.58791:58890](),[5.695326][5.58791:58890]()
    let mut l = crate::alive::retrieve(txn, T::graph(&channel), output_item.pos)?;
    [5.1275]
    [5.1276]
    let mut l = crate::alive::retrieve(txn, txn.graph(&channel), output_item.pos)?;
  • replacement in libpijul/src/lib.rs at line 422
    [5.96148][5.59875:59945]()
    self.get_changeset(Self::changes(&channel.borrow()), cid)
    [5.96148]
    [5.96217]
    self.get_changeset(self.changes(&channel.borrow()), cid)
  • replacement in libpijul/src/lib.rs at line 434
    [5.96342][5.59980:60055]()
    pristine::is_alive(self, Self::graph(channel), a).map_err(|e| e.0)
    [5.96342]
    [5.730324]
    pristine::is_alive(self, self.graph(channel), a).map_err(|e| e.0)
  • replacement in libpijul/src/lib.rs at line 504
    [5.97693][5.60364:60435]()
    .get_revchangeset(Self::rev_changes(&channel.borrow()), n)
    [5.97693]
    [5.97762]
    .get_revchangeset(self.rev_changes(&channel.borrow()), n)
  • replacement in libpijul/src/lib.rs at line 519
    [5.98064][5.60436:60504]()
    self.get_changeset(Self::changes(&channel.borrow()), h)
    [5.98064]
    [5.98065]
    self.get_changeset(self.changes(&channel.borrow()), h)
  • replacement in libpijul/src/lib.rs at line 585
    [5.733390][5.60505:60580]()
    let mut graph = alive::retrieve(self, Self::graph(&channel), v0)?;
    [5.733390]
    [5.733451]
    let mut graph = alive::retrieve(self, self.graph(&channel), v0)?;
  • replacement in libpijul/src/lib.rs at line 618
    [5.99496][5.60647:60730]()
    pristine::iter_adjacent(self, Self::graph(graph), key, min_flag, max_flag)
    [5.99496]
    [5.62703]
    pristine::iter_adjacent(self, self.graph(graph), key, min_flag, max_flag)
  • replacement in libpijul/src/fs.rs at line 784
    [5.759605][5.62621:62720]()
    for name in iter_adjacent(txn, T::graph(channel), current.inode_vertex(), flag0, flag1)? {
    [5.759605]
    [5.113391]
    for name in iter_adjacent(txn, txn.graph(channel), current.inode_vertex(), flag0, flag1)? {
  • replacement in libpijul/src/fs.rs at line 786
    [5.113421][5.62721:62804]()
    let name_dest = txn.find_block(T::graph(channel), name.dest).unwrap();
    [5.113421]
    [5.759767]
    let name_dest = txn.find_block(txn.graph(channel), name.dest).unwrap();
  • replacement in libpijul/src/fs.rs at line 795
    [5.760027][5.62805:62880]()
    .get_changeset(T::changes(&channel), name.dest.change)
    [5.760027]
    [5.760104]
    .get_changeset(txn.changes(&channel), name.dest.change)
  • replacement in libpijul/src/fs.rs at line 809
    [5.760549][5.62881:62962]()
    current = iter_adjacent(txn, T::graph(channel), next, flag0, flag1)?
    [5.760549]
    [5.760636]
    current = iter_adjacent(txn, txn.graph(channel), next, flag0, flag1)?
  • replacement in libpijul/src/fs.rs at line 836
    [5.761463][5.62990:63068]()
    let inode_vertex = txn.find_block_end(T::graph(channel), v).unwrap();
    [5.761463]
    [5.761532]
    let inode_vertex = txn.find_block_end(txn.graph(channel), v).unwrap();
  • replacement in libpijul/src/fs.rs at line 838
    [5.761584][5.63069:63162]()
    for name in iter_adjacent(txn, T::graph(channel), v.inode_vertex(), flag0, flag1)? {
    [5.761584]
    [5.114126]
    for name in iter_adjacent(txn, txn.graph(channel), v.inode_vertex(), flag0, flag1)? {
  • replacement in libpijul/src/fs.rs at line 845
    [5.761841][5.63163:63235]()
    .get_changeset(T::changes(&channel), name.dest.change)?
    [5.761841]
    [5.761914]
    .get_changeset(txn.changes(&channel), name.dest.change)?
  • replacement in libpijul/src/fs.rs at line 848
    [5.761942][5.63236:63323]()
    let name_dest = txn.find_block_end(T::graph(channel), name.dest).unwrap();
    [5.761942]
    [5.762020]
    let name_dest = txn.find_block_end(txn.graph(channel), name.dest).unwrap();
  • replacement in libpijul/src/fs.rs at line 851
    [5.114351][5.63324:63411]()
    for e in iter_adjacent(txn, T::graph(channel), name_dest, flag0, flag1)? {
    [5.114351]
    [5.114435]
    for e in iter_adjacent(txn, txn.graph(channel), name_dest, flag0, flag1)? {
  • replacement in libpijul/src/fs.rs at line 910
    [3.1406][3.1406:1494]()
    if let Some(t) = txn.get_changeset(T::changes(&channel), change)? {
    [3.1406]
    [3.1494]
    if let Some(t) = txn.get_changeset(txn.changes(&channel), change)? {
  • replacement in libpijul/src/diff/mod.rs at line 67
    [5.5921][5.63565:63649]()
    self.diff_binary(changes, txn, T::graph(channel), path, inode, a, &b)?;
    [5.5921]
    [5.5994]
    self.diff_binary(changes, txn, txn.graph(channel), path, inode, a, &b)?;
  • replacement in libpijul/src/diff/mod.rs at line 122
    [5.796903][5.63650:63689]()
    T::graph(channel),
    [5.796903]
    [5.796932]
    txn.graph(channel),
  • replacement in libpijul/src/change.rs at line 232
    [5.837398][5.63717:63898]()
    add_zombie_deps_from(txn, T::graph(channel), &mut zombie_deps, e.from)?;
    add_zombie_deps_to(txn, T::graph(channel), &mut zombie_deps, e.to)?
    [5.837398]
    [5.837559]
    add_zombie_deps_from(txn, txn.graph(channel), &mut zombie_deps, e.from)?;
    add_zombie_deps_to(txn, txn.graph(channel), &mut zombie_deps, e.to)?
  • replacement in libpijul/src/change.rs at line 246
    [5.118290][5.63899:63950]()
    txn.get_changeset(T::changes(&channel), a)
    [5.118290]
    [5.118291]
    txn.get_changeset(txn.changes(&channel), a)
  • replacement in libpijul/src/change.rs at line 248
    [5.118313][5.63951:64022]()
    .cmp(&txn.get_changeset(T::changes(&channel), b).unwrap())
    [5.118313]
    [5.644]
    .cmp(&txn.get_changeset(txn.changes(&channel), b).unwrap())
  • replacement in libpijul/src/change.rs at line 254
    [5.118499][5.64023:64074]()
    txn.get_changeset(T::changes(&channel), a)
    [5.118499]
    [5.118500]
    txn.get_changeset(txn.changes(&channel), a)
  • replacement in libpijul/src/change.rs at line 256
    [5.118522][5.64075:64146]()
    .cmp(&txn.get_changeset(T::changes(&channel), b).unwrap())
    [5.118522]
    [5.955]
    .cmp(&txn.get_changeset(txn.changes(&channel), b).unwrap())
  • replacement in libpijul/src/change.rs at line 363
    [5.840736][5.64358:64432]()
    let time = txn.get_changeset(T::changes(&channel), id)?.unwrap();
    [5.840736]
    [5.840811]
    let time = txn.get_changeset(txn.changes(&channel), id)?.unwrap();
  • replacement in libpijul/src/change.rs at line 391
    [5.841723][5.64433:64524]()
    let time = if let Some(time) = txn.get_changeset(T::changes(&channel), dep)? {
    [5.841723]
    [5.841815]
    let time = if let Some(time) = txn.get_changeset(txn.changes(&channel), dep)? {
  • replacement in libpijul/src/change.rs at line 396
    [5.841957][5.64525:64563]()
    T::name(channel),
    [5.841957]
    [5.841993]
    txn.name(channel),
  • replacement in libpijul/src/apply.rs at line 98
    [5.124523][5.64564:64637]()
    if txn.get_changeset(T::changes(&channel), int)?.is_some() {
    [5.124523]
    [5.945329]
    if txn.get_changeset(txn.changes(&channel), int)?.is_some() {
  • replacement in libpijul/src/apply.rs at line 145
    [5.267][5.64638:64707]()
    .get_changeset(T::changes(&channel), change_id)?
    [5.267]
    [5.337]
    .get_changeset(txn.changes(&channel), change_id)?
  • replacement in libpijul/src/apply.rs at line 161
    [5.125043][5.64708:64780]()
    txn.get_changeset(T::changes(&channel), int)?.is_some()
    [5.125043]
    [5.946906]
    txn.get_changeset(txn.changes(&channel), int)?.is_some()
  • replacement in libpijul/src/apply.rs at line 219
    [5.948928][5.64812:64851]()
    let n = T::apply_counter(channel);
    [5.948928]
    [5.125568]
    let n = txn.apply_counter(channel);
  • replacement in libpijul/src/apply.rs at line 221
    [5.125585][5.64852:64949]()
    if let Some(m) = txn.put_changes(channel, change_id, T::apply_counter(channel), hash)? {
    [5.125585]
    [5.125678]
    if let Some(m) = txn.put_changes(channel, change_id, txn.apply_counter(channel), hash)? {
  • replacement in libpijul/src/apply.rs at line 319
    [5.127096][5.65456:65529]()
    if txn.get_changeset(T::changes(&channel), int)?.is_some() {
    [5.127096]
    [5.240]
    if txn.get_changeset(txn.changes(&channel), int)?.is_some() {
  • replacement in libpijul/src/apply.rs at line 330
    [5.953296][5.65530:65596]()
    update_inode(txn, T::graph(&channel), internal, update)?;
    [5.953296]
    [5.953352]
    update_inode(txn, &channel, internal, update)?;
  • replacement in libpijul/src/apply.rs at line 357
    [5.3408][5.127532:127619]()
    fn update_inode<T: GraphTxnT + TreeMutTxnT<TreeError = <T as GraphTxnT>::GraphError>>(
    [5.3408]
    [5.953893]
    fn update_inode<T: ChannelTxnT + TreeMutTxnT<TreeError = <T as GraphTxnT>::GraphError>>(
  • replacement in libpijul/src/apply.rs at line 359
    [5.953910][5.127620:127644]()
    channel: &T::Graph,
    [5.953910]
    [5.953936]
    channel: &T::Channel,
  • replacement in libpijul/src/apply.rs at line 371
    [5.954317][5.127695:127762]()
    .get_graph(&channel, vertex.inode_vertex(), None)?
    [5.954317]
    [5.954389]
    .get_graph(txn.graph(channel), vertex.inode_vertex(), None)?
  • replacement in libpijul/src/alive/output.rs at line 104
    [5.991876][5.67213:67303]()
    txn.get_changeset(T::changes(&channel), graph[*x].vertex.change)?
    [5.991876]
    [5.991967]
    txn.get_changeset(txn.changes(&channel), graph[*x].vertex.change)?
  • replacement in libpijul/src/alive/output.rs at line 115
    [5.136498][5.67304:67392]()
    .debug(changes, txn, T::graph(channel), false, true, f)
    [5.136498]
    [5.136583]
    .debug(changes, txn, txn.graph(channel), false, true, f)
  • replacement in libpijul/src/alive/output.rs at line 200
    [5.994757][5.67420:67507]()
    graph.collect_forward_edges(txn, T::graph(channel), &scc, &forward_scc, forward)?;
    [5.994757]
    [5.994833]
    graph.collect_forward_edges(txn, txn.graph(channel), &scc, &forward_scc, forward)?;