Init repo with default .ignore file

ammkrn
Jul 29, 2021, 11:30 PM
Q7CHNDXNVJCBL2DK7LYZ6KSRFN4KO6TXKEP3GIWDJHB6JPSE3FUQC

Dependencies

  • [2] BZSC7VMY address clippy lints
  • [3] YN63NUZO Sanakirja 1.0
  • [4] RUBBHYZ7 Removing unnecessary async/await
  • [5] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [6] JL4WKA5P Implement the Sanakirja concurrency model in a cross-process way

Change contents

  • edit in pijul/src/repository.rs at line 20
    [2.176]
    [3.21994]
    pub const DEFAULT_IGNORE: [&[u8]; 2] = [b".git", b".DS_Store"];
  • replacement in pijul/src/repository.rs at line 89
    [3.24499][3.24499:24620]()
    let mut pristine_dir = cur.clone();
    pristine_dir.push(DOT_DIR);
    pristine_dir.push(PRISTINE_DIR);
    [3.24499]
    [3.24620]
    let pristine_dir = {
    let mut base = cur.clone();
    base.push(DOT_DIR);
    base.push(PRISTINE_DIR);
    base
    };
  • replacement in pijul/src/repository.rs at line 97
    [3.24728][3.24728:24857]()
    let mut changes_dir = cur.clone();
    changes_dir.push(DOT_DIR);
    changes_dir.push(CHANGES_DIR);
    [3.24728]
    [3.24857]
    init_dot_ignore(cur.clone())?;
    let changes_dir = {
    let mut base = cur.clone();
    base.push(DOT_DIR);
    base.push(CHANGES_DIR);
    base
    };
  • edit in pijul/src/repository.rs at line 117
    [3.25360]
    /// Create and populate an initial `.ignore` file for the repository.
    /// The default elements are defined in the constant [`DEFAULT_IGNORE`].
    fn init_dot_ignore(base_path: std::path::PathBuf) -> Result<(), anyhow::Error> {
    use std::io::Write;
    let dot_ignore_path = {
    let mut base = base_path.clone();
    base.push(".ignore");
    base
    };
    let mut dot_ignore = std::fs::OpenOptions::new()
    .read(true)
    .write(true)
    .create(true)
    .open(dot_ignore_path)?;
    for default_ignore in DEFAULT_IGNORE {
    dot_ignore.write(default_ignore)?;
    dot_ignore.write(b"\n")?;
    }
    Ok(())
    }