“Jujutsu (jj) is a version control system with a significantly simplified mental model and command-line interface compared to Git, without sacrificing expressibility or power (in fact, you could argue Jujutsu is more powerful). Stacked-diff workflows, seamless rebases, and ephemeral revisions are all natural with jj […]”

Part 2 of the series is out and is here.

  • naonintendois@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    5 months ago

    Jj’s closest equivalent of branches are bookmarks, but they don’t auto update when you pull from a remote. I wish it was more like a git branch in that sense.

    However, editing past commits and reorganizing the tree is MUCH easier in jj. It feels like the commands are more in line with what I want to do rather than having to figure out the specific set of git commands to do what I want.

    I did find the “adding EVERYTHING” behavior to be annoying initially. My workaround was to create a local folder and add it to git ignore and push all those temp files there.

    YMMV but I’ve found it much easier to manage complex workflows with jj compared to git.

    • atzanteol@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      5 months ago

      However, editing past commits and reorganizing the tree is MUCH easier in jj. It feels like the commands are more in line with what I want to do rather than having to figure out the specific set of git commands to do what I want.

      I can see that - but that’s a “less frequent” task than me switching between branches. And the auto-commit-everything mixed with “you need to lookup a hash ID for each thing you’re working on” workflow is very frequent and obnoxious.

      • naonintendois@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        5 months ago

        You don’t always need the hash id. @ is equivalent to HEAD, there’s also @- for HEAD~, @-- for HEAD~2, etc. with jj log the revset can also be a complex expression https://jj-vcs.github.io/jj/latest/revsets/. You can also create a bookmark to track a remote git branch that’s also updated when you fetch. But you have to move the bookmark when you make changes locally.

    • HaraldvonBlauzahn@feddit.orgOP
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      5 months ago

      YMMV but I’ve found it much easier to manage complex workflows with jj compared

      It is no secret that git’s interface is a bit too complex - even XKCD has made fun of it.

      But what is amusing is that people now have a kind of Stockholm Syndrome, and plain refuse to believe there could be something better.

      (Perhaps motivated by the long list of half-assed helper interfaces and GUIs which just were hapless trying to hide the sprawling complexity).

      • naonintendois@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        5 months ago

        Telling people they have Stockholm syndrome is not a good way to convince them to change their behavior. Present the pros, be honest about the cons and let people make their own decisions. The jj workflow isn’t for everyone, and sometimes people’s git workflows are simple enough that there isn’t a benefit to learning a new tool. I like jj because I have to deal with complicated workflows for work and jj makes them much easier. At a different job it was much simpler and I wouldn’t have paid too much attention to jj.

        • HaraldvonBlauzahn@feddit.orgOP
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          5 months ago

          Telling people they have Stockholm syndrome is not a good way to convince them to change their behavior.

          Yeah that’s probably not the best way to express it. Perhaps it is more like:

          Git is huge and complex to learn, and some people have spent a lot of time to learn it - hundreds of hours.

          Now, eyeing jujutsu, they expect that for doing this complex task with jujutsu they will again have to learn a very complex interface, with a lot of effort, and they decide it probably ain’t worth it. Which by the way, for software is a reasonable heuristic most of the time.

          So if somebody tells them that jujutsu is less effort to learn to do complex tasks, they don’t believe it and that’s it.

          It also seems to happen frequently that people try jujutsu, but it does not click for them, they try commands but they do not get what’s the advantage - perhaps because it is too different from git. And later they try again and it clicks. Steve Klabnik described that for himself.

          Moreover some people don’t need to do complex tasks.

          And people in general hate it when interfaces change in unwanted ways. Which is human nature too and a valid way to allocate time and attention, which both are a scarce resource.