Commit 91b326b
committed
refactor: git overhaul with git2 lib
- replace Git Pane status and diff loading with git2-backed Rust commands
- split Git Pane data flow into summary loading and per-file diff loading
- move diff parsing into Rust and return structured rows to the frontend
- lazily load file diffs, cache detail results across collapse and reopen, and avoid preloading large diffs
- auto-expand only the first 10 files per section and keep large diffs collapsed by default
- keep binary files in staged and unstaged lists while rendering them as placeholder-only cards
- synthesize diffs for untracked text files so additions, line numbers, and content render correctly
- disable syntax highlighting for large diffs and plain-text or data extensions
- preserve git commit hooks, signing, and amend semantics by delegating commit operations to the git CLI
- fix rename diff loading and unstage-all behavior so old and new paths stay in sync
- add regression coverage for untracked diffs, rename detail handling, binary visibility, and rename unstage behavior1 parent 9099934 commit 91b326b
10 files changed
Lines changed: 1436 additions & 527 deletions
File tree
- apps/desktop
- src-tauri
- gen/schemas
- permissions
- src
- src
- components/MainPane/tabs/git
- utils
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
42 | | - | |
| 43 | + | |
| 44 | + | |
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
| |||
0 commit comments