add contents to added files diff

tzemanovic
May 4, 2026, 7:01 PM
RVV6Y7OIPXZ5AMS5LZNU2G3CGESOFLQRCGSGTWO4S5YBUI7HUX2QC

Dependencies

  • [2] KT5UYXGK fix selection after adding file, add changed file diffs
  • [3] MJDGPSHG WIP contents diff
  • [4] ZVI4AWER woot contents_diff
  • [5] QMAUTRB6 refactor diff
  • [6] 23SFYK4Q big view refactor into a new crate
  • [7] XSZZB47U refactor stuff into lib
  • [8] ACDXXAX2 refactor main's updates into smaller fns
  • [9] ESMM3FEL test selection reindexing
  • [10] WXQBBQ2A update nightly
  • [11] PTWZYQFR use nav-scrollable for repo status
  • [12] EJPSD5XO shared allowed actions conditions between update and view
  • [13] 5O4FWCFP add tests to_record selection and improve it
  • [14] HPSOAD4R fix moved tracked file view
  • [15] 2SLTGWP6 add change files diffs to-record selection
  • [16] UPWS6J3B filter to-record changes from selection
  • [17] FU6P5QLG indicate when a file is a dir with appended '/'
  • [18] L6GEOWHO fix partial overall toggle
  • [19] PNRHMFDN undo simplying the test
  • [20] WAOGSCOJ very nice refactor, wip adding channels logs
  • [21] 4WO3ZJM2 show untracked files' contents
  • [22] LFEMJYYD start of to_record selection
  • [23] F6O6FGOJ improve diffs encoding detection
  • [24] WEFEV7PV handle move edgeMap diff
  • [25] BJ3CYLUT allow to reset changed file
  • [26] AMPZ2BXK show changed files diffs (only Edit atm)
  • [27] UTDTZCTX pull+push status, add info reports
  • [28] PKLUHYE4 allow to copy change hash
  • [29] W4LFX7IH group diffs by file name
  • [30] SASAN2XC use nav-scrollable
  • [31] 3XRG4BB6 rewritten nav-scrollable!
  • [32] 5CYU7UT7 test: rm added file
  • [33] MYGIBRRH wip custom theme
  • [*] SWWE2R6M display basic repo stuff
  • [*] VCNKFNUF app init test
  • [*] 6YZAVBWU Initial commit

Change contents

  • replacement in libflorescence/src/repo.rs at line 253
    [2.392][2.392:401]()
    Add,
    [2.392]
    [2.401]
    Add {
    contents: Option<Contents>,
    },
  • replacement in libflorescence/src/repo.rs at line 300
    [3.783][3.783:821]()
    ChangedFileDiff::Add => None,
    [3.783]
    [3.821]
    ChangedFileDiff::Add { .. } => None,
  • replacement in libflorescence/src/repo.rs at line 1202
    [16.8317][16.8317:8342]()
    contents: _,
    [16.8317]
    [16.8342]
    contents,
  • replacement in libflorescence/src/repo.rs at line 1204
    [16.8367][16.8367:8418]()
    } => (path.clone(), ChangedFileDiff::Add),
    [16.8367]
    [16.8418]
    } => {
    // TODO: This fn isn't public in upstream pijul, contrib
    let contents = if let Some(contents) = contents {
    let raw_contents = get_change_contents(
    &repo.changes,
    contents,
    &diff.contents,
    )?;
    let encoding = encoding::detect(&raw_contents);
    Some(try_decode_contents(raw_contents, &encoding))
    } else {
    None
    };
    (path.clone(), ChangedFileDiff::Add { contents })
    }
  • replacement in libflorescence/src/diff.rs at line 40
    [7.1337][7.1337:1346]()
    Add,
    [7.1337]
    [7.1346]
    Add {
    contents: Option<String>,
    },
  • replacement in inflorescence_view/src/diff.rs at line 219
    [6.6494][6.6494:6546]()
    DiffWithContents::Add => el(text("Added")),
    [6.6494]
    [6.6546]
    DiffWithContents::Add { contents } => {
    if let Some(contents) = contents {
    let line_num = 1;
    let lines = contents_to_lines(contents);
    let max_line_num = line_num + lines.len();
    let line_num_digits = max_line_num.to_string().len();
    let lines_view =
    lines.into_iter().enumerate().map(|(ix, line)| {
    line_view(
    LineKind::Added,
    line_num + ix,
    line_num_digits,
    line,
    )
    });
    el(column(lines_view))
    } else {
    el(text("Added"))
    }
    }
  • replacement in inflorescence_model/src/to_record/test.rs at line 169
    [13.10114][13.10114:10163]()
    let change_c_1 = repo::ChangedFileDiff::Add;
    [13.10114]
    [13.10163]
    let change_c_1 = repo::ChangedFileDiff::Add { contents: None };
  • replacement in inflorescence_model/src/to_record/test.rs at line 487
    [19.136][19.136:185]()
    let change_b_2 = repo::ChangedFileDiff::Add;
    [19.136]
    [18.2338]
    let change_b_2 = repo::ChangedFileDiff::Add { contents: None };
  • replacement in inflorescence_model/src/action.rs at line 1332
    [12.17679][12.17679:17754]()
    matches!(diff, repo::ChangedFileDiff::Add)
    [12.17679]
    [12.17754]
    matches!(
    diff,
    repo::ChangedFileDiff::Add { .. }
    )
  • replacement in inflorescence/src/test.rs at line 628
    [17.12083][11.3887:3950](),[11.3887][11.3887:3950]()
    &BTreeSet::from_iter([repo::ChangedFileDiff::Add])
    [17.12083]
    [11.3950]
    &BTreeSet::from_iter([repo::ChangedFileDiff::Add {
    contents: None
    }])
  • replacement in inflorescence/src/test.rs at line 837
    [17.12730][9.3825:3888](),[9.3825][9.3825:3888]()
    BTreeSet::from_iter([repo::ChangedFileDiff::Add]),
    [17.12730]
    [9.3888]
    BTreeSet::from_iter([repo::ChangedFileDiff::Add {
    contents: None,
    }]),
  • replacement in inflorescence/src/main.rs at line 2452
    [10.560][10.560:609]()
    .insert(repo::ChangedFileDiff::Add);
    [10.560]
    [11.5326]
    .insert(repo::ChangedFileDiff::Add { contents: None });
  • replacement in inflorescence/src/main.rs at line 2509
    [10.1122][10.1122:1190]()
    .any(|diff| matches!(diff, repo::ChangedFileDiff::Add))
    [10.1122]
    [8.2530]
    .any(|diff| matches!(diff, repo::ChangedFileDiff::Add { .. }))
  • replacement in inflorescence/src/diff.rs at line 68
    [5.5038][5.5038:5082](),[5.5082][15.8490:8563]()
    repo::ChangedFileDiff::Add => {
    with.push((DiffWithContents::Add, id_parts_hash(diff)));
    [5.5038]
    [5.5132]
    repo::ChangedFileDiff::Add { contents } => {
    let contents = match contents {
    Some(repo::Contents::Decoded(lines) | repo::Contents::ShortBase64(lines)) => Some(lines.clone()),
    Some(repo::Contents::UnknownEncoding(_)) | None => None
    };
    with.push((DiffWithContents::Add { contents }, id_parts_hash(diff)));
  • replacement in inflorescence/src/diff.rs at line 166
    [14.7695][14.7695:7736]()
    | repo::ChangedFileDiff::Add
    [14.7695]
    [14.7736]
    | repo::ChangedFileDiff::Add { .. }
  • replacement in inflorescence/src/diff.rs at line 213
    [3.6516][4.20772:20837]()
    DiffWithContents::Add | DiffWithContents::Undel => {
    [3.6516]
    [3.6615]
    DiffWithContents::Add { contents } => {
    let added = contents
    .as_deref()
    .map(trim_line_break_suffix)
    .map(contents_to_lines)
    .unwrap_or_default();
    let max_line_num = added.len();
    sections.push(Section::Changed {
    deleted: vec![],
    added,
    diff_id,
    });
    return Combined {
    sections,
    max_line_num,
    };
    }
    DiffWithContents::Undel => {