KT5UYXGKEEXUHURNOYFVIG7WQ3Y3SJZMM2TP4OSW6NXSXQ5XXRHAC 6YZAVBWU6E5FYOI5JGEIPXGZLIKAW6LS2AOFIQWEE5DMOPPCD5PQC KLR5FRIBS6UOH3S3XAOE22TJACVSVOY7TOLW22DIWNGY27S6WZRAC IQDCHWCP47LL46EXQLQGHQPGFYIHQLMQBHA57RWJCIOX5UEUIQAQC SWWE2R6MVBX5CNM6X3WLXZTSRTU53PBJL7WJSFVF77XBPXDX4COAC WT3GA27PQ2AOAIGK65O3Q4DMX4AZDVNULBLRL6GF4QW6QCASUEAAC DVKSPF7R5QBWRHNADU7LK37OVZHOHNDSRETUVY6GNXWE74SHXSUAC UB2ITZJSDADVINSQEZ3HA6PVGA7OA6JYFG5GMSO7Y7LOXJC4FI7AC EC3TVL4X6VZZVLOKUN63LC73ADPHBHMZO7QMDXGX2ZPURVI4B4XQC pub changed_files: BTreeSet<String>,
pub changed_files: BTreeSet<ChangedFile>,}#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]pub struct ChangedFile {pub path: String,pub diff: ChangedFileDiff,}#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, strum::Display)]pub enum ChangedFileDiff {Move,Del,Undel,Add,SolveNameConflict,UnsolveNameConflict,Edit,Replacement,SolveOrderConflict,UnsolveOrderConflict,ResurrectZombines,AddRoot,DelRoot,
fn changed_files(diff: &Diff) -> BTreeSet<String> {
pub fn add(repo: &mut pijul::Repository, path_str: &str) {let txn = repo.pristine.arc_txn_begin().unwrap();let repo_path = CanonicalPathBuf::canonicalize(&repo.path).unwrap();let full_path = {let mut p = repo.path.clone();p.push(path_str);p};let path = CanonicalPathBuf::canonicalize(full_path).unwrap();let meta = std::fs::metadata(&path).unwrap();if !working_copy::filesystem::filter_ignore(repo_path.as_ref(),path.as_ref(),meta.is_dir(),) {println!("Won't add ignored file {path_str}");return;}{let mut txn = txn.write();let path = if let Ok(path) =path.as_path().strip_prefix(&repo_path.as_path()){path} else {return;};let path_str = path_slash::PathExt::to_slash_lossy(path);if !txn.is_tracked(&path_str).unwrap() {if let Err(e) = txn.add(&path_str, meta.is_dir(), 0) {eprintln!("Failed to add {}", e);}}}txn.commit().unwrap();}fn changed_files(diff: &Diff) -> BTreeSet<ChangedFile> {
encoding,} => todo!(),BaseHunk::SolveNameConflict { name, path } => todo!(),BaseHunk::UnsolveNameConflict { name, path } => todo!(),
add_name: _,add_inode: _,contents: _,encoding: _,} => ChangedFile {path: path.clone(),diff: ChangedFileDiff::Add,},BaseHunk::SolveNameConflict { name: _, path } => ChangedFile {path: path.clone(),diff: ChangedFileDiff::SolveNameConflict,},BaseHunk::UnsolveNameConflict { name: _, path } => ChangedFile {path: path.clone(),diff: ChangedFileDiff::UnsolveNameConflict,},
encoding,} => todo!(),BaseHunk::SolveOrderConflict { change, local } => todo!(),BaseHunk::UnsolveOrderConflict { change, local } => todo!(),
encoding: _,} => ChangedFile {path: local.path.clone(),diff: ChangedFileDiff::Replacement,},BaseHunk::SolveOrderConflict { change: _, local } => ChangedFile {path: local.path.clone(),diff: ChangedFileDiff::SolveOrderConflict,},BaseHunk::UnsolveOrderConflict { change: _, local } => {ChangedFile {path: local.path.clone(),diff: ChangedFileDiff::UnsolveOrderConflict,}}
encoding,} => todo!(),BaseHunk::AddRoot { name, inode } => todo!(),BaseHunk::DelRoot { name, inode } => todo!(),
encoding: _,} => ChangedFile {path: local.path.clone(),diff: ChangedFileDiff::ResurrectZombines,},BaseHunk::AddRoot { name: _, inode: _ } => ChangedFile {// TODO: maybe they don't all have path?path: ".".to_string(),diff: ChangedFileDiff::AddRoot,},BaseHunk::DelRoot { name: _, inode: _ } => ChangedFile {// TODO: maybe they don't all have path?path: ".".to_string(),diff: ChangedFileDiff::DelRoot,},
Message::AddUntrackedFile => {if let Some(cursor::Selection::UntrackedFile { ix, path }) =state.cursor.selection.as_ref(){repo::add(&mut state.repo.state, path);let removed = state.repo.untracked_files.remove(path);debug_assert!(removed,"{:?}, path: {path}",state.repo.untracked_files);let file = repo::ChangedFile {path: path.clone(),diff: repo::ChangedFileDiff::Add,};state.repo.changed_files.insert(file);// Select the next untracked file, if anystate.cursor.selection =if state.repo.untracked_files.is_empty() {None} else {let ix =cmp::min(*ix, state.repo.untracked_files.len() - 1);Some(untracked_file_selection(state, ix))};}}
name = "strum"version = "0.27.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ce1475c515a4f03a8a7129bb5228b81a781a86cb0b3fbbc19e1c556d491a401f"dependencies = ["strum_macros",][[package]]name = "strum_macros"version = "0.27.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9688894b43459159c82bfa5a5fa0435c19cbe3c9b427fa1dd7b1ce0c279b18a7"dependencies = ["heck","proc-macro2","quote","rustversion","syn 2.0.95",][[package]]