Changes & Commits
Dojo uses an immutable, change-based model inspired by Jujutsu. This is fundamentally different from Git’s staging-area approach.
Working copy is a commit
Section titled “Working copy is a commit”In Dojo, your working copy is always a commit. Every time you modify a file, the change is automatically recorded. There’s no staging area, no git add.
# Just edit files — they're automatically trackedecho "hello" > file.txtdojo status# Shows: A file.txt (in your working copy commit)Changes vs Commits
Section titled “Changes vs Commits”- A change is identified by a change ID — a stable identifier that survives rewrites
- A commit is a specific version of a change, identified by a commit ID
When you amend or rebase a change, the change ID stays the same but the commit ID changes. This makes it easy to track changes through history rewrites.
Describing changes
Section titled “Describing changes”# Describe the current working copydojo commit -m "Add feature X"This does two things:
- Sets the description on the current working copy commit
- Creates a new empty working copy on top
Editing earlier changes
Section titled “Editing earlier changes”You can go back and edit any change in your history:
# Edit the parent of your current working copydojo edit @-
# Make modifications...
# Go back to your latest changedojo edit @Child changes are automatically rebased on top of your edits.
The operation log
Section titled “The operation log”Every operation in Dojo is logged and can be undone:
# View operation historydojo history ops
# Undo the last operationdojo rewrite undo