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
+23
-1
@@ -42,7 +42,7 @@ upstream() {
|
||||
}
|
||||
|
||||
mkdir -p "$root/remotes" "$root/work"
|
||||
for r in core ui net store log feature nested; do remote "$r"; done
|
||||
for r in core ui net store log feature nested work; do remote "$r"; done
|
||||
|
||||
# "feature" has a branch that main doesn't contain
|
||||
g "$root/work/feature" switch -c feat/search
|
||||
@@ -57,6 +57,17 @@ commit "$root/work/store" dev "Start develop"
|
||||
g "$root/work/store" push origin develop
|
||||
g "$root/work/store" switch main
|
||||
|
||||
# "work" has several tracked files, to show every kind of change
|
||||
w="$root/work/work"
|
||||
seq 1 20 | sed 's/^/line /' >"$w/main.go"
|
||||
seq 1 3 | sed 's/^/util /' >"$w/util.go"
|
||||
seq 1 8 | sed 's/^/old /' >"$w/old.go"
|
||||
seq 1 5 | sed 's/^/lib /' >"$w/lib.go"
|
||||
printf '\000\001\002\003' >"$w/logo.png"
|
||||
g "$w" add .
|
||||
g "$w" commit -m "Add sources"
|
||||
g "$w" push origin main
|
||||
|
||||
# "nested" becomes a submodule of "log"
|
||||
g "$root/work/log" submodule add "$root/remotes/nested.git" modules/nested
|
||||
g "$root/work/log" commit -m "Add nested"
|
||||
@@ -76,6 +87,7 @@ add core libs/conflict
|
||||
add ui libs/staged
|
||||
add net libs/missing
|
||||
add ui vendor
|
||||
add work libs/work
|
||||
g "$super" submodule update --init --recursive
|
||||
g "$super" commit -m "Add submodules"
|
||||
|
||||
@@ -106,6 +118,16 @@ echo dirty >>"$super/libs/log/modules/nested/README"
|
||||
# vendor: untracked file
|
||||
echo scratch >"$super/vendor/scratch.txt"
|
||||
|
||||
# libs/work: one of every kind of change
|
||||
wk="$super/libs/work"
|
||||
{ seq 3 20 | sed 's/^/line /'; seq 1 6 | sed 's/^/new /'; } >"$wk/main.go" # modified +6 -2
|
||||
echo "util 4" >>"$wk/util.go" # modified +1
|
||||
printf '\000\001\002\003\004' >"$wk/logo.png" # modified, binary
|
||||
echo "package work" >"$wk/notes_new.go"; g "$wk" add notes_new.go # added (staged)
|
||||
rm "$wk/old.go" # removed
|
||||
g "$wk" mv lib.go lib2.go # renamed (staged)
|
||||
echo scratch >"$wk/scratch.txt"; mkdir "$wk/tmp"; echo x >"$wk/tmp/a.txt" # untracked
|
||||
|
||||
# libs/staged: new pin staged in the superproject, not committed
|
||||
g "$super/libs/staged" merge --ff-only origin/main
|
||||
g "$super" add libs/staged
|
||||
|
||||
Reference in New Issue
Block a user