respect .ignore in file watch

tzemanovic
Jan 26, 2026, 5:12 PM
XQTT6NDF6KRXHUABU45HB2TDSQQXYUF7S66PGMM7TVKE3OFBTVAQC

Dependencies

  • [2] 6YZAVBWU Initial commit
  • [3] UB2ITZJS refresh changed files on FS changes
  • [4] 6F7Q4ZLR avoid unused warns
  • [5] ACDXXAX2 refactor main's updates into smaller fns
  • [6] 2LWMGRUM test diff
  • [7] QYDWH7KB test add and rm
  • [8] 5FVZF7XX test changed files
  • [9] WW36JYLR add iced_nav_scrollable widget crate
  • [10] SASAN2XC use nav-scrollable
  • [11] 7MJOO4E2 task wrappers tooling workaround
  • [12] WAOGSCOJ very nice refactor, wip adding channels logs
  • [13] IFQPVMBD error handling for repo actions
  • [14] LNAL3372 update iced
  • [15] YGZ3VCW4 add push
  • [16] UTDTZCTX pull+push status, add info reports
  • [17] KT5UYXGK fix selection after adding file, add changed file diffs
  • [18] A5YBC77V record!
  • [19] PTWZYQFR use nav-scrollable for repo status
  • [20] YBJRDOTC make all repo actions async
  • [21] OQ6HSAWH show record log
  • [22] B4RMW5AE add syntax highlighter to untracked files contents
  • [23] JZXYSIYD channel selection!
  • [24] WT3GA27P add cursor with selection
  • [25] 23SFYK4Q big view refactor into a new crate
  • [26] AZ5D2LQU allow to set record description
  • [27] DXAYDIMQ update to latest pijul
  • [*] UF5NJKAS test load repo

Change contents

  • replacement in libflorescence/src/repo/test.rs at line 140
    [6.528][13.10564:10616]()
    let diff = repo::diff(&internal.repo).unwrap();
    [6.528]
    [8.87]
    let diff = repo::get_diff(&internal.repo).unwrap();
  • replacement in libflorescence/src/repo/test.rs at line 147
    [6.743][13.10617:10669]()
    let diff = repo::diff(&internal.repo).unwrap();
    [6.743]
    [8.169]
    let diff = repo::get_diff(&internal.repo).unwrap();
  • replacement in libflorescence/src/repo/test.rs at line 192
    [7.195][13.10914:10966]()
    let diff = repo::diff(&internal.repo).unwrap();
    [7.195]
    [8.652]
    let diff = repo::get_diff(&internal.repo).unwrap();
  • replacement in libflorescence/src/repo/test.rs at line 201
    [7.452][13.11022:11074]()
    let diff = repo::diff(&internal.repo).unwrap();
    [7.452]
    [8.734]
    let diff = repo::get_diff(&internal.repo).unwrap();
  • replacement in libflorescence/src/repo/test.rs at line 210
    [7.694][13.11129:11182]()
    let adiff = repo::diff(&internal.repo).unwrap();
    [7.694]
    [7.738]
    let adiff = repo::get_diff(&internal.repo).unwrap();
  • edit in inflorescence/src/main.rs at line 11
    [10.2366]
    [16.6637]
    use ignore::gitignore::Gitignore;
  • replacement in inflorescence/src/main.rs at line 23
    [3.279][3.279:348]()
    new_debouncer, DebounceEventResult, Debouncer, RecommendedCache,
    [3.279]
    [3.348]
    new_debouncer, notify, DebounceEventResult, Debouncer, RecommendedCache,
  • edit in inflorescence/src/main.rs at line 1128
    [5.8018]
    [5.8018]
    // Load `.ignore` file
    let (ignore, ignore_err) =
    Gitignore::new(state.model.repo_path.join(".ignore"));
    if let Some(err) = ignore_err {
    let msg = format!("Error loading .ignore file {err}");
    error!("{msg}");
    report::show_err(&mut state.model.report, msg);
    }
  • replacement in inflorescence/src/main.rs at line 1150
    [5.8564][5.8564:8614]()
    let _ = fs_watch_tx.send(());
    [5.8564]
    [5.8614]
    let is_dir = matches!(
    event.kind,
    notify::EventKind::Create(
    notify::event::CreateKind::Folder,
    ) | notify::EventKind::Remove(
    notify::event::RemoveKind::Folder,
    )
    );
    if event.paths.iter().any(|path| {
    !ignore
    .matched_path_or_any_parents(path, is_dir)
    .is_ignore()
    }) {
    let _ = fs_watch_tx.send(());
    }
  • edit in inflorescence/Cargo.toml at line 30
    [2.3701]
    [3.1726]
    workspace = true
    [dependencies.ignore]
  • edit in Cargo.toml at line 67
    [9.6794]
    [14.7301]
    [workspace.dependencies.ignore]
    version = "0.4"
  • edit in Cargo.lock at line 2578
    [10.14971]
    [12.102926]
    "ignore",