Support for staging

[?]
Jan 13, 2021, 9:27 PM
OU243LABJJZ3MQHYW2A2MYKW7KZLTZGHJJXDR2BIIIHXT5BSYN3AC

Dependencies

  • [2] ZAEUSICJ File deletions were not shown with their names in the metadata during record
  • [3] G6S6PWZE Do not touch the channel if this is a partial record
  • [4] L4JXJHWX pijul/*: reorganize imports and remove extern crate
  • [5] 3MHUNYER Changing --amend flag to respect -m flag
  • [6] CCFJ7VO3 Renaming "Record" to "Hunk" in the changes
  • [7] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [8] ZHABNS3S Canonicalize all paths
  • [9] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [*] AEPEFS7O Write help for each argument
  • [*] DJYHARZ7 Skipping old files when recording

Change contents

  • replacement in pijul/src/commands/record.rs at line 6
    [4.12471][4.25:63](),[4.1486][4.25:63]()
    use canonical_path::CanonicalPathBuf;
    [4.12471]
    [4.101804]
    use canonical_path::{CanonicalPath, CanonicalPathBuf};
  • edit in pijul/src/commands/record.rs at line 44
    [4.102666]
    [11.1290]
    /// Ignore missing (deleted) files
    #[clap(long = "ignore-missing")]
    pub ignore_missing: bool,
    #[clap(long = "working-copy")]
    pub working_copy: Option<String>,
  • replacement in pijul/src/commands/record.rs at line 109
    [4.104054][3.0:52]()
    let no_prefixes = self.prefixes.is_empty();
    [4.104054]
    [4.104054]
    let no_prefixes =
    self.prefixes.is_empty() && !self.ignore_missing && self.working_copy.is_none();
    let (repo_path, mut working_copy) = if let Some(ref w) = self.working_copy {
    (
    CanonicalPathBuf::canonicalize(w)?,
    Some(libpijul::working_copy::filesystem::FileSystem::from_root(w)),
    )
    } else {
    (CanonicalPathBuf::canonicalize(&repo.path)?, None)
    };
  • replacement in pijul/src/commands/record.rs at line 122
    [4.104136][4.104136:104172]()
    &mut repo.working_copy,
    [4.104136]
    [4.104172]
    working_copy.as_mut().unwrap_or(&mut repo.working_copy),
  • replacement in pijul/src/commands/record.rs at line 124
    [4.104199][4.64:121]()
    CanonicalPathBuf::canonicalize(&repo.path)?,
    [4.104199]
    [4.104223]
    repo_path,
  • edit in pijul/src/commands/record.rs at line 221
    [4.106964]
    [4.106964]
    if self.ignore_missing {
    state.ignore_missing = true;
    }
  • replacement in pijul/src/commands/record.rs at line 225
    [4.107002][4.107002:107217]()
    txn.record(
    &mut state,
    libpijul::Algorithm::default(),
    channel,
    working_copy,
    changes,
    "",
    )?
    [4.107002]
    [4.107217]
    if self.ignore_missing {
    for f in ignore::Walk::new(&repo_path) {
    let f = f?;
    if f.metadata()?.is_file() {
    let p = CanonicalPath::new(f.path())?;
    let p = p.as_path().strip_prefix(&repo_path).unwrap();
    txn.record(
    &mut state,
    libpijul::Algorithm::default(),
    channel,
    working_copy,
    changes,
    p.to_str().unwrap(),
    )?
    }
    }
    } else {
    txn.record(
    &mut state,
    libpijul::Algorithm::default(),
    channel,
    working_copy,
    changes,
    "",
    )?
    }
  • replacement in libpijul/src/record.rs at line 54
    [4.489628][4.489628:489652]()
    force_rediff: bool,
    [4.489628]
    [4.489652]
    pub force_rediff: bool,
    pub ignore_missing: bool,
  • edit in libpijul/src/record.rs at line 99
    [12.1393]
    [4.490934]
    ignore_missing: false,
  • edit in libpijul/src/record.rs at line 501
    [2.205]
    [4.503554]
    if self.ignore_missing {
    return Ok(());
    }