Archived
Preview uncommitted changes in the detail pane
For a dirty submodule, list the changed files so the user can remember
what they were doing there:
Changes 5 files · 2M 1A 1D 1R · +37 −12
──────────────────────────────────
M render.go src/render/ +20 −4 3d ago
? scratch.txt 5m ago
- Status.Changes: files changed against HEAD (staged and unstaged
combined) with kind, line counts and modification time; sorted by kind,
then by size; capped at 200 with totals over all files.
- Git provider: parse `status --porcelain=v2 -z` and one
`diff HEAD --numstat -z -M`, only for dirty submodules.
- Detail pane: flat list with a colored status letter per file, like IDE
source-control views; counts and age in compact columns; up to 10 files,
every kind keeps a line, the rest is summarized as "n more".
- Fixture gains libs/work with every kind of change; mock data extended.
- Docs: F24, change preview in the UX guide, D17.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
64fe34b5b0
commit
19c6f17eb2
@@ -128,3 +128,21 @@ processes.
|
||||
**Decision.** The git provider limits concurrent `Status` calls to
|
||||
`runtime.NumCPU()` with a semaphore that respects `ctx`.
|
||||
**Consequences.** The UI stays unchanged; rows fill in steadily.
|
||||
|
||||
## D17 — Change preview: flat letter list against HEAD
|
||||
|
||||
**Context.** `changed` doesn't tell users what they changed or why; they
|
||||
want to remember what they were doing in a submodule.
|
||||
**Decision.** `Status.Changes` lists the changed files against HEAD (staged
|
||||
and unstaged combined) with line counts. The detail pane shows them as a
|
||||
flat list with a colored status letter in front, like IDE source-control
|
||||
views, instead of group headers. Sorted by kind, then by size; the 10-line
|
||||
budget keeps one line for every kind present and summarizes the rest.
|
||||
Placed directly below the issue lines, because the pane is cut by height.
|
||||
One summary line for all files, then strictly one line per file with its
|
||||
own age: a second summary line ("+1 · edited 19m ago") read as if it
|
||||
belonged to the first file.
|
||||
Dirt inside nested submodules is ignored (D7); unstaged moves show as
|
||||
removed + untracked.
|
||||
**Consequences.** One extra `git diff` per dirty submodule, none for clean
|
||||
ones. Not included: staged/unstaged markers, diff bodies, stash count.
|
||||
|
||||
Reference in New Issue
Block a user