More precise API for working copy in record and output

pmeunier
Nov 23, 2021, 11:14 AM
LPM4PBYJFIFZXN3JNEZOKEQ74UXUMURIFY5U4R2CFC6N4XINHL4AC

Dependencies

  • [2] RMDMAYRX Adding a root inode (aka supporting submodules)
  • [3] GBX4AFAS Collecting conflicts in output (broken by parallel output)
  • [4] YCEZL7VF Moving to temporary paths when outputting
  • [5] JP3BYVXX Fixing file paths on Windows
  • [6] I24UEJQL Various post-fire fixes
  • [7] NYOF5766 track file encoding in the record, including change text for file adds
  • [8] 246V5TYI decode existing files
  • [9] W4NSLQNG make text_encoding available to all of libpijul
  • [10] FXEDPLRI Resurrecting tests, and type cleanup (no need for Arc<RwLock<…>> anymore)
  • [11] XR7MNOMU file encoding in updates
  • [12] TNN56XYK libpijul alpha.43
  • [13] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [14] Q3GU26WD merge with changes from sanakirja v1.1.2
  • [15] 7KNPYIDU Splitting the WorkingCopy trait into a read-only record and a read/write output

Change contents

  • replacement in libpijul/src/working_copy/mod.rs at line 3
    [3.64][3.0:36]()
    use crate::pristine::InodeMetadata;
    [3.64]
    [3.36]
    use crate::pristine::{Inode, InodeMetadata};
  • replacement in libpijul/src/working_copy/mod.rs at line 46
    [3.413][3.413:488]()
    fn write_file(&self, file: &str) -> Result<Self::Writer, Self::Error>;
    [3.413]
    [3.488]
    fn write_file(&self, file: &str, inode: Inode) -> Result<Self::Writer, Self::Error>;
  • replacement in libpijul/src/working_copy/memory.rs at line 301
    [3.26815][3.26815:26891]()
    fn write_file(&self, file: &str) -> Result<Self::Writer, Self::Error> {
    [3.26815]
    [3.543]
    fn write_file(&self, file: &str, _: crate::Inode) -> Result<Self::Writer, Self::Error> {
  • replacement in libpijul/src/working_copy/filesystem.rs at line 411
    [3.29490][3.29490:29566]()
    fn write_file(&self, file: &str) -> Result<Self::Writer, Self::Error> {
    [3.29490]
    [3.541]
    fn write_file(&self, file: &str, _: Inode) -> Result<Self::Writer, Self::Error> {
  • replacement in libpijul/src/output/output.rs at line 89
    [3.74185][3.42:122]()
    work: Arc<crossbeam_deque::Injector<(OutputItem, String, Option<String>)>>,
    [3.74185]
    [3.74249]
    work: Arc<crossbeam_deque::Injector<(OutputItem, Inode, String, Option<String>)>>,
  • replacement in libpijul/src/output/output.rs at line 99
    [3.74562][3.123:174]()
    Steal::Success((item, path, tmp)) => {
    [3.74562]
    [3.175]
    Steal::Success((item, inode, path, tmp)) => {
  • edit in libpijul/src/output/output.rs at line 109
    [3.74950]
    [3.317]
    inode,
  • replacement in libpijul/src/output/output.rs at line 249
    [2.14975][2.14975:15055]()
    work: Arc<crossbeam_deque::Injector<(OutputItem, String, Option<String>)>>,
    [2.14975]
    [2.15055]
    work: Arc<crossbeam_deque::Injector<(OutputItem, Inode, String, Option<String>)>>,
  • replacement in libpijul/src/output/output.rs at line 428
    [2.21089][2.21089:21170]()
    .push((output_item.clone(), path.clone(), tmp.clone()));
    [2.21089]
    [2.21170]
    .push((output_item.clone(), inode, path.clone(), tmp.clone()));
  • edit in libpijul/src/output/output.rs at line 592
    [3.81409]
    [3.81409]
    inode: Inode,
  • replacement in libpijul/src/output/output.rs at line 600
    [3.81595][3.81595:81670]()
    let w = repo.write_file(&path).map_err(OutputError::WorkingCopy)?;
    [3.81595]
    [3.103237]
    let w = repo
    .write_file(&path, inode)
    .map_err(OutputError::WorkingCopy)?;
  • edit in libpijul/src/output/output.rs at line 606
    [3.81895]
    [3.81895]
    use std::io::Write;
    f.w.flush().unwrap_or(())