Conversation
Reviewer's guide (collapsed on small PRs)Reviewer's GuideDocuments a team-wide preference to use the Flow diagram for choosing jj vs git for VCS operationsflowchart TD
A_Start["Start VCS operation"] --> B_CheckSupport["Is the desired operation supported in jj?"]
B_CheckSupport -->|Yes| C_UseJJ["Use jj command for this operation"]
C_UseJJ --> D_End["Operation complete"]
B_CheckSupport -->|No| E_FallbackGit["Fallback: use git command for this operation"]
E_FallbackGit --> D_End
subgraph Common_jj_workflows
F_Status["Inspect: jj status / jj diff / jj log"]
G_ChangeLifecycle["Change lifecycle: jj new → jj describe → jj commit → jj push"]
H_History["History manipulation: jj squash / jj rebase / jj edit"]
end
C_UseJJ --> F_Status
C_UseJJ --> G_ChangeLifecycle
C_UseJJ --> H_History
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis PR adds a "Version Control: Prefer jj" section to
Confidence Score: 4/5
|
| Filename | Overview |
|---|---|
| CLAUDE.md | Adds a "Version Control: Prefer jj" section with basic jj command equivalents. The listed commands are valid, but the push workflow is incomplete — it omits the required bookmark creation step needed before jj push in a git-backed repository. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Agent starts work] --> B[jj new\nstart a new change]
B --> C[Make code changes]
C --> D[jj describe\nset commit message]
D --> E[jj commit\nfinalize change]
E --> F{Need to push?}
F -->|Yes| G[jj bookmark create branch-name\n⚠️ MISSING from guide]
G --> H[jj push --bookmark branch-name]
F -->|No| I[jj squash / rebase / edit\nhistory manipulation]
H --> J[Open PR on GitHub]
K[Operation not in jj?] --> L[Fall back to git]
Last reviewed commit: 980e5f7
CLAUDE.md
Outdated
| Use `jj` (Jujutsu) for all VCS operations instead of `git`: | ||
| - `jj status`, `jj diff`, `jj log` for inspection | ||
| - `jj new` to start a change, `jj describe` to set the message | ||
| - `jj commit` to commit, `jj push` to push |
There was a problem hiding this comment.
Missing bookmark step for jj push
In a git-backed repository like this one, jj push requires a named bookmark (jj's equivalent of a git branch) to be set on the change before pushing. Without it, jj push will have nothing to push and will report an error. An agent following this guide as-is will fail at the push step.
The complete push workflow needs a bookmark creation step:
| - `jj commit` to commit, `jj push` to push | |
| - `jj squash`, `jj rebase`, `jj edit` for history manipulation | |
| - `jj bookmark create <branch-name>` to create a branch, then `jj push --bookmark <branch-name>` to push |
Alternatively, the guide could note that jj push --change @ can be used in newer versions of jj to auto-create a bookmark for the current change.
Prompt To Fix With AI
This is a comment left during a code review.
Path: CLAUDE.md
Line: 70
Comment:
**Missing bookmark step for `jj push`**
In a git-backed repository like this one, `jj push` requires a named bookmark (jj's equivalent of a git branch) to be set on the change before pushing. Without it, `jj push` will have nothing to push and will report an error. An agent following this guide as-is will fail at the push step.
The complete push workflow needs a bookmark creation step:
```suggestion
- `jj squash`, `jj rebase`, `jj edit` for history manipulation
- `jj bookmark create <branch-name>` to create a branch, then `jj push --bookmark <branch-name>` to push
```
Alternatively, the guide could note that `jj push --change @` can be used in newer versions of jj to auto-create a bookmark for the current change.
How can I resolve this? If you propose a fix, please make it concise.There was a problem hiding this comment.
Pull request overview
Updates contributor guidance to prefer the Jujutsu (jj) CLI for version control operations in this repository.
Changes:
- Add a “Version Control: Prefer jj” section to CLAUDE.md.
- Document common
jjcommands for status/diff/log, starting work, committing, pushing, and history manipulation.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
CLAUDE.md
Outdated
| Use `jj` (Jujutsu) for all VCS operations instead of `git`: | ||
| - `jj status`, `jj diff`, `jj log` for inspection | ||
| - `jj new` to start a change, `jj describe` to set the message | ||
| - `jj commit` to commit, `jj push` to push |
There was a problem hiding this comment.
The workflow list says jj push to push. In Jujutsu’s Git integration the push command is typically jj git push (and similarly jj git fetch), so jj push may be an invalid/unsupported command depending on the installed jj version. Update the docs to the correct command(s) for pushing to Git remotes, or clarify which jj version/workflow this repo expects.
| - `jj commit` to commit, `jj push` to push | |
| - `jj commit` to commit, `jj git push` to push to Git remotes |
| - `jj squash`, `jj rebase`, `jj edit` for history manipulation | ||
|
|
||
| Fall back to `git` only for operations not yet supported by `jj`. | ||
|
|
There was a problem hiding this comment.
This doc now recommends using jj, but the repo’s .gitignore currently doesn’t ignore Jujutsu’s .jj/ metadata directory. That makes it easy for contributors to accidentally stage/commit .jj files. Consider either updating .gitignore to exclude .jj/ or adding an explicit note here to never commit .jj/ (and how to clean it up if it appears in git status).
| **Important:** Jujutsu stores local metadata in a `.jj/` directory. This must **never** be committed. | |
| - If `.jj/` shows up in `git status` or staged changes, unstage it: | |
| - `git restore --staged -r .jj` | |
| - If `.jj/` somehow became tracked, remove it from the index: | |
| - `git rm -r --cached .jj` | |
| - Ensure your ignores are set up so `.jj/` is excluded from future commits. |
|
wopr-auto review: ISSUES FOUND. Two issues in the new jj section:
Fixer should correct |
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
|
wopr-auto review: LGTM. Both previous findings resolved: |
Adds jj (Jujutsu) preference rule to CLAUDE.md so agents use jj instead of git.
Summary by Sourcery
Documentation:
Note
Prefer jj over git for VCS operations in developer docs
Adds a 'Version Control: Prefer jj' section to CLAUDE.md with guidance on using Jujutsu (
jj) commands for common operations (status, diff, log, commit, rebase, etc.), with git as a fallback. Also adds.jj/to .gitignore to exclude the Jujutsu metadata directory.Macroscope summarized dadcbf9.