rm unnecessary state from repo's internal state
[?]
May 8, 2025, 10:02 AM
ONRCENKTUB4JJMPXNAQQYEWDYD54TAGOLWH742GF4EH3KTHV7YLQCDependencies
- [2]
SWWE2R6Mdisplay basic repo stuff - [3]
UB2ITZJSrefresh changed files on FS changes - [4]
EC3TVL4Xadd untracked files - [5]
ELG3UDT6allow to rm added files - [6]
W7IUT3ZVstart recording impl - [7]
YBJRDOTCmake all repo actions async - [8]
A5YBC77Vrecord! - [9]
4WO3ZJM2show untracked files' contents - [10]
W4LFX7IHgroup diffs by file name - [11]
AMPZ2BXKshow changed files diffs (only Edit atm) - [12]
NRCUG4R2load changed files src when selected - [13]
ZVI4AWERwoot contents_diff - [14]
OQ6HSAWHshow record log - [15]
AHWWRC73navigate log entries - [16]
JE44NYHMdisplay log files diffs - [17]
Y5ATDI2Hconvert changed file diffs and load src only if any needs it - [18]
KT5UYXGKfix selection after adding file, add changed file diffs - [19]
KM5PSZ4Awatch repo once loaded - [20]
V55EAIWQadd src file LRU cache - [*]
6YZAVBWUInitial commit
Change contents
- edit in crates/libflorescence/src/repo.rs at line 45
pub untracked_files: BTreeSet<String>,pub changed_files: ChangedFiles,pub log: Log, - replacement in crates/libflorescence/src/repo.rs at line 144[7.587]→[15.7:28](∅→∅),[15.28]→[7.627:670](∅→∅),[7.627]→[7.627:670](∅→∅),[7.670]→[10.222:259](∅→∅),[10.259]→[15.29:47](∅→∅),[15.47]→[7.716:723](∅→∅),[10.259]→[7.716:723](∅→∅),[7.716]→[7.716:723](∅→∅),[7.723]→[16.59:135](∅→∅)
RefreshedState {untracked_files: BTreeSet<String>,changed_files: ChangedFiles,log: Log,},LogFileDiff {id: LogFileId,diffs: ChangedFile,},RefreshedState(State),LogFileDiff { id: LogFileId, diffs: ChangedFile }, - replacement in crates/libflorescence/src/repo.rs at line 172
let mut state = spawn_blocking(move || load(path)).await.unwrap();let (mut internal_state, state) =spawn_blocking(move || load(path)).await.unwrap(); - edit in crates/libflorescence/src/repo.rs at line 175
let dir_name = dir_name(&state.repo).to_string();let channel = current_channel(&state.repo);let untracked_files = state.untracked_files.clone();let changed_files = state.changed_files.clone();let log = state.log.clone(); - replacement in crates/libflorescence/src/repo.rs at line 176[2.530]→[7.1344:1476](∅→∅),[7.1476]→[14.287:300](∅→∅),[14.300]→[7.1476:1485](∅→∅),[7.1476]→[7.1476:1485](∅→∅)
let _ = msg_out_tx.send(MsgOut::Init(State {dir_name,channel,untracked_files,changed_files,log,}));let _ = msg_out_tx.send(MsgOut::Init(state)); - replacement in crates/libflorescence/src/repo.rs at line 180
state = update(state, msg, &msg_out_tx).await;internal_state = update(internal_state, msg, &msg_out_tx).await; - replacement in crates/libflorescence/src/repo.rs at line 185
mut state: InternalState,mut internal_state: InternalState, - replacement in crates/libflorescence/src/repo.rs at line 191
state = spawn_blocking(move || {refresh(&mut state);statelet state: State;(internal_state, state) = spawn_blocking(move || {let state = get_state(&internal_state);(internal_state, state) - replacement in crates/libflorescence/src/repo.rs at line 198
let untracked_files = state.untracked_files.clone();let changed_files = state.changed_files.clone();let log = state.log.clone();let _ = msg_out_tx.send(MsgOut::RefreshedState {untracked_files,changed_files,log,});let _ = msg_out_tx.send(MsgOut::RefreshedState(state)); - replacement in crates/libflorescence/src/repo.rs at line 201
state = spawn_blocking(move || {add(&mut state, &path);stateinternal_state = spawn_blocking(move || {add(&mut internal_state, &path);internal_state - replacement in crates/libflorescence/src/repo.rs at line 209
state = spawn_blocking(move || {rm(&mut state, &path);stateinternal_state = spawn_blocking(move || {rm(&mut internal_state, &path);internal_state - replacement in crates/libflorescence/src/repo.rs at line 217[8.760]→[7.2865:2910](∅→∅),[7.2865]→[7.2865:2910](∅→∅),[7.2910]→[8.761:802](∅→∅),[8.802]→[7.2951:2973](∅→∅),[7.2951]→[7.2951:2973](∅→∅)
state = spawn_blocking(move || {record(&state, msg, sk);stateinternal_state = spawn_blocking(move || {record(&internal_state, msg, sk);internal_state - replacement in crates/libflorescence/src/repo.rs at line 227
(state, diffs) = spawn_blocking(move || {let change =state.repo.changes.get_change(&change_hash).unwrap();(internal_state, diffs) = spawn_blocking(move || {let change = internal_state.repo.changes.get_change(&change_hash).unwrap(); - replacement in crates/libflorescence/src/repo.rs at line 234
changed_files(&change, &state.repo.changes);changed_files(&change, &internal_state.repo.changes); - replacement in crates/libflorescence/src/repo.rs at line 236
(state, diffs)(internal_state, diffs) - replacement in crates/libflorescence/src/repo.rs at line 243
stateinternal_state - replacement in crates/libflorescence/src/repo.rs at line 246
fn load(path: PathBuf) -> InternalState {fn load(path: PathBuf) -> (InternalState, State) { - replacement in crates/libflorescence/src/repo.rs at line 248
let diff = diff(&repo);let untracked_files = untracked_files(&repo);let internal_state = InternalState { repo };let state = get_state(&internal_state);(internal_state, state)}fn get_state(state: &InternalState) -> State {// TODO: Optimize by using the notify event info about what file has changedlet repo = &state.repo;let dir_name = dir_name(repo).to_string();let channel = current_channel(repo);let diff = diff(repo);let untracked_files = untracked_files(repo); - replacement in crates/libflorescence/src/repo.rs at line 263[14.359]→[14.359:400](∅→∅),[9.325]→[7.3102:3122](∅→∅),[14.400]→[7.3102:3122](∅→∅),[2.843]→[7.3102:3122](∅→∅),[7.3122]→[6.296:310](∅→∅),[2.855]→[6.296:310](∅→∅)
let log = log(&repo, offset, limit);InternalState {repo,let log = log(repo, offset, limit);State {dir_name,channel, - edit in crates/libflorescence/src/repo.rs at line 273[3.10]→[7.3123:3163](∅→∅),[7.3163]→[4.360:441](∅→∅),[3.46]→[4.360:441](∅→∅),[4.441]→[5.19:71](∅→∅),[5.71]→[3.46:74](∅→∅),[4.494]→[3.46:74](∅→∅),[3.46]→[3.46:74](∅→∅),[3.74]→[9.326:395](∅→∅),[3.161]→[2.899:902](∅→∅),[9.395]→[2.899:902](∅→∅),[4.543]→[2.899:902](∅→∅),[2.899]→[2.899:902](∅→∅)
fn refresh(state: &mut InternalState) {// TODO: Optimize by using the notify event info about what file has changedstate.untracked_files = untracked_files(state);let diff = diff(state);state.changed_files = changed_files(&diff, &state.repo.changes);} - replacement in crates/inflorescence/src/main.rs at line 1149[7.14967]→[15.9673:9712](∅→∅),[15.9712]→[7.15025:15081](∅→∅),[7.15025]→[7.15025:15081](∅→∅),[7.15081]→[15.9713:9730](∅→∅),[15.9730]→[7.15081:15096](∅→∅),[7.15081]→[7.15081:15096](∅→∅),[11.2910]→[7.15096:15249](∅→∅),[7.15096]→[7.15096:15249](∅→∅),[7.15249]→[15.9731:9759](∅→∅)
repo::MsgOut::RefreshedState {untracked_files,changed_files,log,} => {let repo = state.repo.as_mut().unwrap();repo.untracked_files = untracked_files;repo.changed_files = changed_files;repo.log = log;repo::MsgOut::RefreshedState(repo_state) => {let repo::State {dir_name: _,channel: _,untracked_files,changed_files,log,} = &repo_state; - replacement in crates/inflorescence/src/main.rs at line 1160
if let Some(selection) = state.cursor.selection.take() {let task = if let Some(selection) = state.cursor.selection.take() { - replacement in crates/inflorescence/src/main.rs at line 1178
let selection = repo.untracked_fileslet selection = untracked_files - replacement in crates/inflorescence/src/main.rs at line 1196
if let Some(diffs) = repo.changed_files.get(&path) {if let Some(diffs) = changed_files.get(&path) { - replacement in crates/inflorescence/src/main.rs at line 1209
let selection = repo.changed_fileslet selection = changed_files - replacement in crates/inflorescence/src/main.rs at line 1230
let (selection, task) = match repo.loglet (selection, task) = match log - replacement in crates/inflorescence/src/main.rs at line 1282
}};state.repo = Some(repo_state);task