Understand working copy auto-snapshots, evolog, and how jj tracks changes automatically. Use when understanding @, viewing working copy history, managing unfinished work, or understanding how jj prevents data loss.
/plugin marketplace add edmundmiller/dotfiles/plugin install jj@dotfiles-pluginsThis skill is limited to using the following tools:
faq-reference.mdKey insight: Jujutsu automatically snapshots your working directory before every command. This creates an automatic safety net - you can always recover your work, even unfinished changes.
The working copy commit (@) is your current workspace, and its evolution is tracked in detail.
@)What is @?
@ in jj log outputKey properties:
jj log -r @ # Show current working copy commit
jj status # Show what's in @ vs parent
jj diff -r @ # Show changes in working copy
How it works:
What this means:
jj op log shows when snapshots happenedExample:
# Make some changes to files
echo "hello" > file.txt
# Run ANY jj command - working copy is snapshotted first
jj log
# Your changes are now saved in @
jj status # Shows file.txt as modified
evolog)What is evolog? Shows the evolution history of a commit's change ID, including all amendments and snapshots.
View working copy evolution:
jj evolog # Show @ evolution
jj evolog -r <change-id> # Show specific change evolution
Example output:
@ abc123 (current) My feature
│ <working copy snapshot>
◆ abc123 (previous) My feature
│ <working copy snapshot>
◆ abc123 (earlier) My feature
All these commits share the same change ID (abc123) but different commit IDs - they're the evolution of the same logical change.
Problem: Want to see how working copy evolved.
# See all snapshots of current change
jj evolog
# See evolution with patches
jj evolog --patch
# See evolution with file diffs
jj evolog -p
Problem: Made changes, ran some commands, want to get back to earlier state.
Solution:
Check evolution:
jj evolog --patch
Find the right snapshot: Look through the evolution log for the state you want
Restore from that snapshot:
jj restore --from <commit-id> # Restore files from specific snapshot
Or use operation log:
jj op log # Find operation before changes
jj --at-op=<op-id> show # View state at that operation
jj op restore <op-id> # Restore to that operation
Problem: Working on something but need to switch tasks.
Solution: Just use jj new to stack work, or leave it as-is. Everything is auto-saved.
Option 1: Stack with jj new (recommended)
# Your current work is auto-saved in @
jj new # Creates new commit, moves @ to child
# Now @ is empty and ready for new work
# Previous work is in @- (parent)
Option 2: Just switch (works too)
# Your work is auto-snapshotted
jj edit <other-commit> # Switch to other commit
# Changes in working directory are saved automatically
# Return later: jj edit <original-change-id>
Option 3: Describe and continue (explicit)
# Describe current work
jj describe -m "WIP: feature in progress"
# Create new commit for next task
jj new -m "Start other task"
Problem: Want to keep scratch files without committing them.
Solutions:
.gitignore (simplest)# Add to .gitignore
echo "scratch/" >> .gitignore
echo "*.tmp" >> .gitignore
# These files won't be auto-tracked
snapshot.auto-track# ~/.jjconfig.toml
[snapshot]
auto-track = "none" # Don't auto-track new files
# Or use glob patterns
auto-track = "glob:src/**" # Only track src/
# Keep scratch work outside repo
mkdir ~/scratch-work/myproject
# Work there for temporary stuff
Control what gets auto-tracked:
# ~/.jjconfig.toml or .jj/repo/config.toml
[snapshot]
# Options:
# - "all" (default): Track all new files
# - "none": Don't track any new files
# - glob patterns: Track only matching files
auto-track = "all"
Examples:
# Only track source files
[snapshot]
auto-track = "glob:src/**/*.rs"
# Track everything except scratch
[snapshot]
auto-track = "!glob:scratch/**"
# Don't auto-track new files
[snapshot]
auto-track = "none"
With auto-track = "none":
# Manually add files
jj file track path/to/file
# Or add temporarily
jj file track --temporary path/to/file
Use this skill when:
Don't use this skill for:
For detailed FAQ answers and advanced patterns:
📚 See detailed docs: faq-reference.md
This includes:
# Working copy inspection
jj status # Show working copy changes
jj log -r @ # Show current commit
jj diff -r @ # Show working copy diff
# Evolution history
jj evolog # Show @ evolution
jj evolog --patch # With diffs
jj evolog -r <change-id> # Specific change evolution
jj obslog # Alias for evolog
# Recovery
jj restore --from <commit-id> # Restore files from snapshot
jj op log # View operation history
jj op restore <op-id> # Restore to operation
# Auto-tracking
jj file track <path> # Track specific file
jj file untrack <path> # Untrack file
Every jj command snapshots your work first. You can't lose uncommitted changes. Use jj evolog to see the history of your working copy, and jj op log to see all operations that created snapshots.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.