Do not update the mtime of unmodified files

[?]
Jan 8, 2021, 8:25 AM
3KRGVQFUWFHPOGZOXVTJYNCM4XBRVYITAEOVPKBSAZ5GZIUO5KVQC

Dependencies

  • [2] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [3] UDHP4ZVB Fixing SSH asynchronicity issues
  • [4] SLJ3OHD4 unrecord: show list of changes if none were given as arguments
  • [5] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [6] L4JXJHWX pijul/*: reorganize imports and remove extern crate
  • [7] VMPAOJS2 Don't output after pushing to a local channel
  • [8] K6GWUOD5 Styling progress bars
  • [9] QE64ATLZ Fixing asynchronicity problems in SSH
  • [10] MU5GSJAW Partial push and pull (WARNING: breaks the existing protocol)
  • [11] WLUID7NA Do not block when downloading more than 100 changes over SSH
  • [12] VO5OQW4W Removing anyhow in libpijul
  • [*] 5DVRL6MF Hard-unrecord

Change contents

  • replacement in pijul/src/remote/ssh.rs at line 1
    [3.25380][3.0:31]()
    use std::collections::HashSet;
    [3.25380]
    [3.25647]
    use std::collections::{HashMap, HashSet};
  • replacement in pijul/src/remote/ssh.rs at line 903
    [3.52310][3.52310:52411]()
    txn.output_repository_no_pending(&mut repo.working_copy, &repo.changes, channel, "", true)?;
    [3.52310]
    [3.52441]
    txn.output_repository_no_pending(
    &mut repo.working_copy,
    &repo.changes,
    channel,
    &mut HashMap::new(),
    "",
    true,
    )?;
  • replacement in pijul/src/remote/local.rs at line 1
    [3.79745][3.4203:4234]()
    use std::collections::HashSet;
    [3.79745]
    [3.11563]
    use std::collections::{HashMap, HashSet};
  • replacement in pijul/src/remote/local.rs at line 128
    [3.66][3.66:152]()
    txn.output_repository_no_pending(&mut repo, &store, &mut channel, "", true)?;
    [3.66]
    [3.83408]
    txn.output_repository_no_pending(
    &mut repo,
    &store,
    &mut channel,
    &mut HashMap::new(),
    "",
    true,
    )?;
  • edit in pijul/src/commands/unrecord.rs at line 1
    [3.95630]
    [3.95761]
    use std::collections::HashMap;
  • edit in pijul/src/commands/unrecord.rs at line 121
    [14.1308]
    [14.1308]
    &mut HashMap::new(),
  • edit in pijul/src/commands/reset.rs at line 1
    [3.97650]
    [3.1289]
    use std::collections::HashMap;
  • edit in pijul/src/commands/reset.rs at line 105
    [3.101109]
    [3.101109]
    &mut HashMap::new(),
  • edit in pijul/src/commands/reset.rs at line 110
    [3.101200]
    [3.101200]
    let mut done = HashMap::new();
  • edit in pijul/src/commands/reset.rs at line 118
    [3.101570]
    [3.101570]
    &mut done,
  • replacement in pijul/src/commands/pushpull.rs at line 1
    [3.111631][3.1620:1651]()
    use std::collections::HashSet;
    [3.111631]
    [3.1651]
    use std::collections::{HashMap, HashSet};
  • replacement in pijul/src/commands/pushpull.rs at line 427
    [3.10199][3.10199:10230]()
    if inodes.is_empty() {
    [3.10199]
    [3.10230]
    let mut touched = HashSet::new();
    for d in to_download.iter() {
    if let Some(int) = txn.get_internal(*d)? {
    for inode in txn.iter_rev_touched(int)? {
    let (int_, inode) = inode?;
    if int_ < int {
    continue;
    } else if int_ > int {
    break;
    }
    let ext = libpijul::pristine::Position {
    change: txn.get_external(inode.change)?.unwrap(),
    pos: inode.pos,
    };
    if inodes.is_empty() || inodes.contains(&ext) {
    touched.insert(inode);
    }
    }
    }
    }
    let mut done = HashMap::new();
    for i in touched {
    let (path, _) =
    libpijul::fs::find_path(&repo.changes, &txn, &channel.borrow(), false, i)?;
    debug!("path = {:?}", path);
  • replacement in pijul/src/commands/pushpull.rs at line 458
    [3.10377][3.10377:10397]()
    "",
    [3.10377]
    [3.10397]
    &mut done,
    &path,
  • edit in pijul/src/commands/pushpull.rs at line 462
    [3.10435][3.10435:10482](),[3.10482][2.14948:15024](),[2.15024][3.10557:11126](),[3.10557][3.10557:11126]()
    } else {
    for i in inodes {
    let i = if let Some(change) = txn.get_internal(i.change)? {
    libpijul::pristine::Position { change, pos: i.pos }
    } else {
    continue;
    };
    let (path, _) =
    libpijul::fs::find_path(&repo.changes, &txn, &channel.borrow(), false, i)?;
    debug!("path = {:?}", path);
    txn.output_repository_no_pending(
    &mut repo.working_copy,
    &repo.changes,
    &mut channel,
    &path,
    true,
    )?;
    }
  • edit in pijul/src/commands/protocol.rs at line 241
    [3.133451]
    [3.133451]
    &mut HashMap::new(),
  • edit in pijul/src/commands/clone.rs at line 1
    [3.182891]
    [3.2900]
    use std::collections::HashMap;
  • edit in pijul/src/commands/clone.rs at line 101
    [3.185732]
    [3.185732]
    &mut HashMap::new(),
  • edit in pijul/src/commands/apply.rs at line 64
    [3.196268]
    [3.196268]
    &mut HashMap::new(),
  • edit in libpijul/src/output/output.rs at line 35
    [3.673174]
    [3.673174]
    done: &mut HashMap<Position<ChangeId>, Vertex<ChangeId>>,
  • edit in libpijul/src/output/output.rs at line 45
    [3.673397]
    [3.673397]
    done,
  • edit in libpijul/src/output/output.rs at line 63
    [3.673775]
    [3.673775]
    done: &mut HashMap<Position<ChangeId>, Vertex<ChangeId>>,
  • edit in libpijul/src/output/output.rs at line 89
    [3.674618][3.674618:674653]()
    let mut done = HashMap::new();
  • edit in libpijul/src/lib.rs at line 273
    [3.725674]
    [3.725674]
    done: &mut HashMap<pristine::Position<ChangeId>, Vertex<ChangeId>>,
  • edit in libpijul/src/lib.rs at line 283
    [3.725913]
    [3.725913]
    done,