4 ms·
People in this thread seem to be too focused on the agent creating a git log. This seems to be solving a different problem than that does. When you're interact
by Zambyte 5mo ago
People in this thread seem to be too focused on the agent creating a git log. This seems to be solving a different problem than that does.
When you're interacting with agents, multiple prompts may reasonable culminate in a single commit. It may be useful to track or undo things between commits - at the prompt level. I personally have a workflow when I use Jujutsu (jj) for git already, and this slotted in very nicely to solve this problem. The auto-committing in jj makes it very easy and natural to compare diffs between prompts, and undo specific chunks or restore previous states without making a new commit every prompt. I only finish a commit, giving it a message and advancing the branch, once I've iteratively dialed in the changes I want.
I probably won't use this tool since I already have a flow that works for me, but maybe this will help people see why such a tool can be helpful.
Edit: fixed typo
- empath75 5mo agoThat's actually the one feature of cursor that i really miss in claude, even though I need it a lot less often.
- adastra22 5mo agoHit ESC-ESC in the Claude Code terminal.
- doshay 5mo ago- hopefully after a /compact. - what happens if want to undo, and then redo? i found the /rewind functionality in claude very lean in that matter.
- adastra22 5mo agoOh it is shit. TFA's approach is much better. But it does exist. Not sure what the relationship is to /compact ? I never use /compact anyway.
- doshay 5mo agotnx for the honest feedback! really, appreciate it! would you mine sharing more details about your workflow with jj?
- Zambyte 5mo agoSure. I was a bit loose with my vocab in my previous comment - I'm going to try to be more specific by using the terms as defined in the jj glossary[0] (particularly "change" vs "commit"). - I start by using jj new to create a new change where I want to start working. - I open codex, and prompt it to do something. - Roughly every prompt, I will naturally check the cumulative diff using jj diff. - If I want to check the diff log of the working change, I'll use jj evolog. - If I want to check the diff from the previous prompt, I'll use jj diff -f xx/1, where xx is the short change ID for the working change, and 1 is how many prompts ago I want to look at the diff for (jj evolog can help with finding the change I'm interested in) - If I want to undo all or some of what a prompt did, I'll use jj restore -f xx/1, potentially with -i or a fileset. - When I've prompted / restored / made changes myself to the point where I am happy with a change, I'll usually ask codex to write a conventional commit message for <commit_id>. Codex will then use *git* to look at the diff in that commit (which has no commit message), and give it will usually give an appropriate commit message[1] (sometimes I'll tweak this if there are details I want to add or remove). I use jj ci (short for jj commit) to finish the change and add the commit message. - I'll then advance bookmarks as necessary with jj b m (short for jj bookmark move) and probably push. [0] https://www.jj-vcs.dev/v0.41.0/glossary/ https://www.jj-vcs.dev/v0.41.0/glossary/ [1] https://www.conventionalcommits.org/en/v1.0.0/ https://www.conventionalcommits.org/en/v1.0.0/
- doshay 5mo agocool approach, i havent used jj actually in my workflow, ill try to adopt