• robinm@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    16 days ago

    First experience with #jj #jujitsu

    I tried the equivalent of git add -p (jj squash -i).

    • I realize that it’s closer to git add --interactive (which I find much more complicated and less productive)
    • I wasn’t able to edit a hunk (like the e key in git add -p) which I use a lot to split debug statements from real work

    I generated a conflict (as I expected)

    • I found no way to show the original diff
    • jj undo did not worked (I have not been able to undo the jj squash that introduced the conflict

    Very not impressed so far. Fortunately it was a test repo.

    • 2xsaiko@discuss.tchncs.deOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      16 days ago

      I wasn’t able to edit a hunk (like the e key in git add -p) which I use a lot to split debug statements from real work

      I don’t think the builtin diff editor can do this, but you can set a different diff editor than the builtin one: https://github.com/martinvonz/jj/blob/main/docs/config.md#editing-diffs

      edit: but wait, debug statements? Are they mixed in on the same line as the real code? The builtin diff editor can pick changes per line.

      I found no way to show the original diff

      jj evolog to show how a single change evolved including the previous commit that didn’t have the conflict yet, if that’s what you mean.

      jj undo did not worked (I have not been able to undo the jj squash that introduced the conflict

      If you did something afterwards, the operation you undo will no longer be the squash. Look at jj op log to see which one is the correct one to undo.

  • Adda@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    16 days ago

    I just recently gave Jujutsu a go, and I must say, it is a pleasure to work with VCS now. As opposed to Git, jj just makes sense and does exactly what I want it to do. No issues whatsoever. And if there is a need (which it is not most of the time), one can just fall back to Git and its ecosystem.

  • samc@feddit.uk
    link
    fedilink
    English
    arrow-up
    3
    ·
    15 days ago

    I use magit in Emacs in a similar sort of way. Bringing up the magit status page instantly presents a list of hunks I can browse and stage. When committing, there is also an option to “instant fixup” into an existing commit, which you can select interactively from the commit log.