Comment by doshay

9 days ago

tnx for the honest feedback! really, appreciate it! would you mine sharing more details about your workflow with jj?

Sure. 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/

[1] https://www.conventionalcommits.org/en/v1.0.0/