grit://cooking/dogfood← what’s cooking
Thursday, October 29, 2026 · Ubuntu 24.04.5 LTS (kernel 6.12.94)

Dogfood on linux-cloud: Newcomer

6 repos · 17 commands · 3 broken · 1 slow · 5 filed

Newcomer on linux-cloud: installed release 0.5.24 with the website script, built main e84d7c9df, walked first-run, beginner mistakes, conflict handling, history/change-id behaviour, teammate push/pull, snapshot checkout (checkout/checkin/integrate against grit serve), a first-time library program, and re-checked the wave's fixes. Everyday paths and errors are clear and consistent across human/--json/--markdown; five issues filed (one real state-machine bug in rebase, one library API trap, three small UX gaps).

os
Ubuntu 24.04.5 LTS (kernel 6.12.94) · x86_64
machine
Cursor cloud VM, 4 vCPU Intel Xeon, 16 GB RAM
versions
grit 0.5.24 · main e84d7c9d · 2.43.0
repositories6
repofilescommits.gitnotes
rust-lang/cargo3,07823,59685 MB
octocat/Hello-World131 MB
scratch/30k-files30,00015 MB200 dirs x 150 files, grit-committed
scratch/submodule-super251 MBone submodule with diverging gitlink bumps
scratch/partial-clone-src631 MB
scratch/small repos s1-s7, r1, rx, cf, cf3, h1, m1, n1———beginner-mistake and conflict scenarios
commandsgrit vs. system git, wall time
commandrepogritgitgrit/gitresultnotes
grit statusrust-lang/cargo15 ms11 ms1.3×ok
grit log -n 100 --onelinerust-lang/cargo3.7 ms2.4 ms1.5×ok
grit blame Cargo.tomlrust-lang/cargo86 ms112 ms0.8×ok
grit diff HEAD~500 HEADrust-lang/cargo231 ms251 ms0.9×ok
grit switch old / master (3000 commits apart)rust-lang/cargo186 ms175 ms1.1×ok
grit log -n 20 -- <path>rust-lang/cargo5.7 ms3.9 ms1.5×ok
grit branch -arust-lang/cargo2.3 ms1.7 ms1.4×ok
grit stash (200 modified files)rust-lang/cargo113 ms——okstash pop 47 ms vs git 44 ms
grit clone https://github.com/rust-lang/cargorust-lang/cargo2.41 s4.37 s0.6×memory2.6x git peak RSS, faster wall; fsck clean; not filed (clone memory covered by existing perf work)
grit commit -m import (30k new files)scratch/30k-files684 ms986 ms0.7×okgit figure is add -A + commit
grit statusscratch/30k-files43 ms24 ms1.8×ok
grit gcscratch/30k-files35 ms——ok
grit checkout <url> --path src/sourcesrust-lang/cargo89 ms——ok42 files, 196 KiB download from grit serve
grit clone --blobs none <plain repo>scratch/partial-clone-src65 ms——okwarns that the server ignored the filter
grit rebase --continue after grit commitscratch/small———wrong#2293
Repository::init + commit_worktree with captured environmentscratch/lib program———wrong#2294
grit reset --hard + hinted recoveryscratch/small———wrong#2296
worked7
  • ›Install script and `grit update` work; release 0.5.24 runs from a clean HOME with a clear identity-unknown message
  • ›Typo suggestions, git-habit hints (init -q, checkout -b, clean -d, commit --no-edit) and structured errors with kind/hint in --json and --markdown
  • ›commit --staged, commit -- paths, commit.autoStage=false, merge --check, -X, branch --force-delete all behave as decided
  • ›change-id header kept across amend/rebase/history and fresh on pick/revert; git fsck clean everywhere
  • ›Teammate push/pull and grit serve snapshot checkout/checkin/integrate end to end, with actionable conflict messages
  • ›Library program with typed errors produced a git-fsck-clean history using only public API
  • ›30k-file commit packs the objects and beats git add+commit; cargo-size read paths are within 1.5x of git
problems13
  • ›#2293 grit commit during a rebase conflict then rebase --continue fails (filed)
  • ›#2294 Repository::init ignores InitOptions::environment for the returned handle; failed identity check leaves dangling tree (filed)
  • ›#2295 misleading mid-rebase errors for pull/merge/pick/rebase (filed)
  • ›#2296 reset --hard recovery hint is a mixed reset (filed)
  • ›#2297 -n on clean/add/rm/mv gets clap's value tip instead of --dry-run (filed)
  • ›`grit` with no args outside a repo: bare 'not a git repository', no init/clone pointer (not filed, minor)
  • ›merge --continue auto-stages while pick/rebase --continue need grit add (documented, inconsistent with decision 2; not filed)
  • ›Empty-blob dangling object (e69de29) left by rebase/history conflict paths (harmless, not filed)
  • ›grit update re-downloads when already latest without saying so (not filed, minor)
  • ›`grit status` on main says 'even with main' when on the target branch itself (confusing for newcomers, not filed)
  • ›Non-executable hook silently ignored; hook failure has no --no-verify hint (not filed, minor)
  • ›docs library/merge.md claims merge orchestration stays in grit-cli while integrate_branch implements it (not filed)
  • ›grit-lib cannot be built with the machine's default cargo 1.83: edition2024 manifests fail before the MSRV message (inherent to cargo, noted under #2227)
bugs filed5
#2293 #2294 #2295 #2296 #2297already reported: #2155 #1909 #1814 #2154
next time
  • ›Real GitHub account: grit auth device flow and a first push (still impossible here)
  • ›Case-colliding paths on macOS for #2226 (not checkable on Linux)
  • ›merge/pick/rebase --continue consistency (auto-stage) once the maintainer decides; retest `grit commit` mid-rebase after #2293 is fixed, including multi-commit rebases and --exec
  • ›grit serve at scale with several concurrent checkouts/checkins, plus slices (grit slice new/edit) and integrate races
  • ›Library: custom CredentialProvider over Remote::fetch, RefStore/ObjectStore embedding, and a program written only from docs.rs pages (not the in-repo examples)
  • ›Large-repo clone memory (cargo 2.6x git RSS) and git/git scale for checkout/pull