Port jj cheatsheets from ffi-playground into .cheat/jj - #106
Draft
alycda wants to merge 1 commit into
Draft
Conversation
The jj devcontainer in alycda/ffi-playground accumulated a set of
cheatsheets that answer the questions that actually come up mid-session
("I put a secret in a commit, now what?", "how do I fix a commit three
deep without losing my place?"). They were stranded in a per-project
devcontainer; this repo is where jj is the daily driver, so they belong
here.
Landing them in .cheat/ rather than tools/cheat/cheatsheets/community/:
cheat auto-detects a .cheat directory in the cwd and layers it on top of
the configured cheatpaths, so these are live the moment you're in the
dotfiles checkout, with no conf.nix change and no home-manager switch.
That also keeps them scoped -- they encode this repo's jj-first workflow
rather than claiming to be general community sheets.
Note the overlap with tools/cheat/cheatsheets/community/jj/, which holds
five one-line stubs (branches, config, init, log, rebase). Only `log`
collides by name, and the local .cheat copy wins while you're in the
repo. Consolidating the two sets is deliberately left out of this change
so the port stays a straight copy.
Specific changes:
- .cheat/jj/branch bookmarks vs branches, and that they don't
auto-advance; v0.43's --named replacing
--allow-new
- .cheat/jj/edit-history amending a mid-stack commit without moving @;
v0.43's rebase -o replacing -d
- .cheat/jj/ignore the .gitignore-then-untrack ordering, and
scrubbing a file already captured in earlier
commits
- .cheat/jj/log revset recipes (local stack, by file, by date)
- .cheat/jj/squash squash --from/--into, absorb, split
- .cheat/jj/undo undo, op log/restore, evolog
Copied verbatim from
https://github.com/alycda/ffi-playground/tree/main/.devcontainer/jj/cheat/jj
(081444c)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01USq6Q2ikzr2d97xwFPGBGc
Contributor
⊕ Entity-level changes.cheat/jj/branch
.cheat/jj/edit-history
.cheat/jj/ignore
.cheat/jj/log
.cheat/jj/squash
.cheat/jj/undo
Summary: 6 added across 6 files functions and classes, not lines · sem |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports the six jj cheatsheets from
alycda/ffi-playground.devcontainer/jj/cheat/jj(at081444c) into.cheat/jj/here. Copied verbatim — no edits to content.Why
They were stranded in a per-project devcontainer, but they answer the questions that come up mid-session in this repo, where jj is the daily driver: "I snapshotted a secret into
@, now what?", "how do I fix a commit three deep without losing my place?"Why
.cheat/and nottools/cheat/cheatsheets/community/jj/cheatauto-detects a.cheatdirectory in the cwd and layers it onto the configured cheatpaths. So these are live the moment you're in the dotfiles checkout — noconf.nixchange, no home-manager switch, nothing to wire up. It also keeps them honestly scoped: they encode this repo's jj-first workflow rather than claiming to be general community sheets. This is the pattern already documented intools/cheat/README.mdunder "Local.cheatdirectories", and matches the existing top-level.cheat/sheets (dev,devcontainer,docker/nix,nix/claude).Contents
branch--namedreplacing--allow-newedit-history@; v0.43'srebase -oreplacing-dignore.gitignore-then-untrackordering, and scrubbing a file already captured in earlier commitslogsquashsquash --from/--into,absorb,splitundoundo,op log/op restore,evologKnown overlap, deliberately not resolved here
tools/cheat/cheatsheets/community/jj/holds five one-line stubs (branches,config,init,log,rebase). Onlylogcollides by name, and the local.cheatcopy wins while you're in the repo — so nothing breaks. Consolidating the two sets is left out so this stays a straight port; happy to follow up if you'd rather the community sheets absorb these instead.Notes
.cheat/needs no wiring, sostatix/deadnix/nix flake checkare unaffected.jjisn't installed in this sandbox, so this was committed withgitper the fallback inCLAUDE.md.Generated by Claude Code