start recording impl

[?]
Feb 20, 2025, 5:48 PM
W7IUT3ZVMFH77IGKLAL7WX7IVVTGTY3FKEJ3WHMP3KI37B6NENLQC

Dependencies

  • [2] 6YZAVBWU Initial commit
  • [3] IQDCHWCP load a pijul repo
  • [4] SWWE2R6M display basic repo stuff
  • [5] WT3GA27P add cursor with selection
  • [6] UB2ITZJS refresh changed files on FS changes
  • [7] EC3TVL4X add untracked files
  • [8] KT5UYXGK fix selection after adding file, add changed file diffs
  • [9] ELG3UDT6 allow to rm added files
  • [10] S2NVIFXR allow to enter record msg
  • [11] DVKSPF7R track selected file path together with an index

Change contents

  • replacement in crates/libflowers_client/src/repo.rs at line 10
    [7.194][8.7:76]()
    use pijul::{working_copy, Hash, MutTxnT, MutTxnTExt, TxnT, TxnTExt};
    [7.194]
    [4.265]
    use pijul::{
    working_copy, ChannelTxnT, Hash, MutTxnT, MutTxnTExt, TxnT, TxnTExt,
    };
  • replacement in crates/libflowers_client/src/repo.rs at line 18
    [4.391][4.391:425]()
    pub state: pijul::Repository,
    [4.391]
    [7.238]
    pub repo: pijul::Repository,
  • replacement in crates/libflowers_client/src/repo.rs at line 50
    [4.569][4.569:589]()
    &self.state
    [4.569]
    [4.589]
    &self.repo
  • replacement in crates/libflowers_client/src/repo.rs at line 57
    [4.701][4.701:797](),[4.797][7.282:333]()
    let state = pijul::Repository::find_root(Some(path)).unwrap();
    let diff = diff(&state);
    let untracked_files = untracked_files(&state);
    [4.701]
    [4.797]
    let repo = pijul::Repository::find_root(Some(path)).unwrap();
    let diff = diff(&repo);
    let untracked_files = untracked_files(&repo);
  • replacement in crates/libflowers_client/src/repo.rs at line 62
    [4.855][4.855:870]()
    state,
    [4.855]
    [7.334]
    repo,
  • edit in crates/libflowers_client/src/repo.rs at line 88
    [4.1299]
    [4.1299]
    pub async fn record(state: &State, msg: String) {
    let repo = &state.repo;
    let channel = current_channel(&repo);
    let txn = repo.pristine.arc_txn_begin().unwrap();
    let mut channel = txn.read().load_channel(&channel).unwrap().unwrap();
    let mut extra = Vec::new();
    for h in repo.config.extra_dependencies.iter() {
    let (h, c) = txn.read().hash_from_prefix(h).unwrap();
    if txn
    .read()
    .get_changeset(txn.read().changes(&*channel.read()), &c)
    .unwrap()
    .is_none()
    {
    panic!(
    "Change {:?} (from .pijul/config) is not on channel {:?}",
    h,
    channel.read().name
    )
    }
    extra.push(h)
    }
    let header = todo!();
    let repo_path = CanonicalPathBuf::canonicalize(&repo.path).unwrap();
    }
  • edit in crates/flowers_ui/src/main.rs at line 91
    [10.240]
    [5.735]
    MadeRecord,
  • replacement in crates/flowers_ui/src/main.rs at line 94
    [2.3099][3.1406:1455]()
    fn update(state: &mut State, message: Message) {
    [2.3099]
    [8.4638]
    fn update(state: &mut State, message: Message) -> Task<Message> {
  • edit in crates/flowers_ui/src/main.rs at line 145
    [7.3765]
    [6.1714]
    Task::none()
  • replacement in crates/flowers_ui/src/main.rs at line 198
    [7.5697][7.5697:5711]()
    }
    [7.5697]
    [5.1670]
    };
    Task::none()
  • replacement in crates/flowers_ui/src/main.rs at line 246
    [7.7530][7.7530:7544]()
    }
    [7.7530]
    [5.2538]
    };
    Task::none()
  • replacement in crates/flowers_ui/src/main.rs at line 250
    [5.2594][5.2594:2647]()
    state.cursor.selection = Some(selection)
    [5.2594]
    [5.2647]
    state.cursor.selection = Some(selection);
    Task::none()
  • replacement in crates/flowers_ui/src/main.rs at line 257
    [8.6580][8.6580:6636]()
    repo::add(&mut state.repo.state, path);
    [8.6580]
    [8.6636]
    repo::add(&mut state.repo.repo, path);
  • edit in crates/flowers_ui/src/main.rs at line 279
    [8.7527]
    [8.7527]
    Task::none()
  • replacement in crates/flowers_ui/src/main.rs at line 287
    [9.960][9.960:1019]()
    repo::rm(&mut state.repo.state, path);
    [9.960]
    [9.1019]
    repo::rm(&mut state.repo.repo, path);
  • edit in crates/flowers_ui/src/main.rs at line 311
    [10.255]
    [10.255]
    Task::none()
  • edit in crates/flowers_ui/src/main.rs at line 321
    [9.2041]
    [9.2041]
    Task::none()
  • edit in crates/flowers_ui/src/main.rs at line 327
    [10.772]
    [10.772]
    Task::none()
  • edit in crates/flowers_ui/src/main.rs at line 332
    [10.906]
    [10.906]
    Task::none()
  • replacement in crates/flowers_ui/src/main.rs at line 335
    [10.954][10.954:1061]()
    let text = record_msg.text();
    if text.chars().all(|c| c.is_whitespace()) {
    [10.954]
    [10.1061]
    let msg = record_msg.text();
    if msg.chars().all(|c| c.is_whitespace()) {
  • edit in crates/flowers_ui/src/main.rs at line 338
    [10.1118]
    [10.1118]
    Task::none()
  • replacement in crates/flowers_ui/src/main.rs at line 341
    [10.1188][10.1188:1247]()
    // TODO: use the text to make a record
    [10.1188]
    [10.1247]
    // TODO: Make a record
    // Task::future(async move {
    // repo::record(&state.repo, msg).await;
    // Message::MadeRecord
    // })
    todo!()
  • edit in crates/flowers_ui/src/main.rs at line 350
    [10.1290]
    [5.2657]
    Message::MadeRecord => todo!(),