Adding a --force option to `pijul add`, to include otherwise ignored files

pmeunier
Jan 2, 2022, 6:18 PM
3SJ3DJNFDA665FS5RLD3HA5S2RKMB5GTA56MBF77YSOPCOHTFMYAC

Dependencies

  • [2] WI2OFAKL honor hidden files when using the pijul add subcommand
  • [3] 46XERN6R Fixing "addition error" in `pijul git`
  • [4] ZDK3GNDB Tag transactions (including a massive refactoring of errors)
  • [5] OJZWJUF2 MUCH faster `pijul add -r`
  • [6] 3J6IK4W2 Explicitly adding .pijul is now forbidden
  • [7] CCLLB7OI Upgrading to Sanakirja 0.15 + version bump
  • [8] VYHHOEYH Versions and formatting
  • [9] 5BB266P6 Optional colours in the global config file
  • [10] RZ2FSIQ2 Fixing `pijul add -r .`
  • [11] HSEYMLO2 Adding an untracked change iterator
  • [12] BKF5KRLH Fixing `pijul diff --untracked`
  • [13] ZHABNS3S Canonicalize all paths
  • [14] LOJL4HMY Recording a prefix we just deleted (mostly useful in `pijul git`, regular records returned NotFound)
  • [*] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [*] 2RXOCWUW Making libpijul deterministic (and getting rid of `rand`)
  • [*] G7VOM2IM Returning an error when recording non-existent paths
  • [*] 4OCC6D42 Recursive add
  • [*] 4VWXL6KQ Correct handling of ignore files

Change contents

  • edit in pijul/src/commands/record.rs at line 341
    [16.107478]
    [17.583]
    false,
  • edit in pijul/src/commands/git.rs at line 746
    [3.269]
    [3.269]
    false,
  • edit in pijul/src/commands/git.rs at line 768
    [3.977]
    [3.977]
    false,
  • edit in pijul/src/commands/file_operations.rs at line 148
    [18.243]
    [18.243]
    self.force,
  • edit in pijul/src/commands/diff.rs at line 87
    [16.175012]
    [5.321]
    false,
  • replacement in pijul/src/commands/diff.rs at line 360
    [5.2456][5.2456:2532]()
    .iterate_prefix_rec(repo_path.clone(), repo_path.clone(), threads)?
    [5.2456]
    [5.2532]
    .iterate_prefix_rec(repo_path.clone(), repo_path.clone(), false, threads)?
  • edit in libpijul/src/working_copy/filesystem.rs at line 13
    [19.1016]
    [20.807]
    /// Returns whether `path` is a child of `root_` (or `root_` itself).
  • edit in libpijul/src/working_copy/filesystem.rs at line 169
    [16.210434]
    [5.374]
    force: bool,
  • edit in libpijul/src/working_copy/filesystem.rs at line 184
    [5.585]
    [5.585]
    force,
  • edit in libpijul/src/working_copy/filesystem.rs at line 197
    [5.810]
    [5.810]
    force,
  • edit in libpijul/src/working_copy/filesystem.rs at line 210
    [5.1825]
    [5.851]
    force: bool,
  • replacement in libpijul/src/working_copy/filesystem.rs at line 215
    [5.3672][5.3672:3758]()
    for p in self.iterate_prefix_rec(repo_path.clone(), full.clone(), threads)? {
    [5.3672]
    [5.3758]
    for p in self.iterate_prefix_rec(repo_path.clone(), full.clone(), force, threads)? {
  • edit in libpijul/src/working_copy/filesystem.rs at line 236
    [5.4277]
    [5.4277]
    force: bool,
  • replacement in libpijul/src/working_copy/filesystem.rs at line 245
    [5.1901][5.119:268](),[5.268][5.4347:4451]()
    if !filter_ignore(
    &repo_path.as_canonical_path(),
    &full.as_canonical_path(),
    meta.is_dir(),
    ) {
    return Ok(Untracked {
    join: None,
    receiver,
    });
    [5.1901]
    [5.175]
    debug!("force = {:?}", force);
    if !force {
    if !filter_ignore(
    &repo_path.as_canonical_path(),
    &full.as_canonical_path(),
    meta.is_dir(),
    ) {
    return Ok(Untracked {
    join: None,
    receiver,
    });
    }
  • replacement in libpijul/src/working_copy/filesystem.rs at line 261
    [5.273][5.273:345]()
    walk.ignore(true)
    .git_ignore(true)
    [5.273]
    [2.0]
    walk.ignore(!force)
    .git_ignore(!force)
  • edit in libpijul/src/working_copy/filesystem.rs at line 322
    [16.211282]
    [5.3106]
    force: bool,
  • replacement in libpijul/src/working_copy/filesystem.rs at line 335
    [4.8813][5.1294:1374](),[5.1294][5.1294:1374]()
    self.add_prefix_rec(&txn, repo_path, full, threads, salt)?;
    [4.8813]
    [5.1374]
    self.add_prefix_rec(&txn, repo_path, full, force, threads, salt)?;