10 comments

  • nchmy46 minutes ago
    Some fantastic tricks in this article. Will definitely improve my Megamerge game. Thanks!<p>Though, I&#x27;d be remiss not to mention that this (and any other) jj workflow would be much easier with jjui. It&#x27;s the best TUI around, not just for jj<p>I proposed incorporating some of this article into it. <a href="https:&#x2F;&#x2F;github.com&#x2F;idursun&#x2F;jjui&#x2F;discussions&#x2F;644" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;idursun&#x2F;jjui&#x2F;discussions&#x2F;644</a>
  • forrestthewoods1 minute ago
    Great post. Thanks for sharing.
  • VerTiGo_Etrex1 hour ago
    Makes me happy to see the influx of jj posts as of late. Great tool. Roughly this workflow is how I convinced a few friends to finally loosen their death grip on git and try something new.
  • grim_io1 hour ago
    If this works like I think it does, it might be the missing piece I&#x27;ve been waiting for, for actually trying jj. Thanks!
    • icorbrey1 hour ago
      Awesome! Tbh other than GitButler idk where I&#x27;d even start if I had to recreate this with vanilla Git
  • nvahalik1 hour ago
    Great article, Isaac!<p>If anyone is JJ-curious, I also can&#x27;t recommend the Discord[1] enough. The community is very helpful and welcoming.<p>[1]: <a href="https:&#x2F;&#x2F;discord.com&#x2F;invite&#x2F;dkmfj3aGQN" rel="nofollow">https:&#x2F;&#x2F;discord.com&#x2F;invite&#x2F;dkmfj3aGQN</a>
  • taberiand1 hour ago
    How does the megamerge handle the case where two included branches overlap in changes and a new commit is made that applies to the overlap?
    • icorbrey1 hour ago
      This is something you have to generally handle manually since absorb won&#x27;t squash hunks with ambiguous targets, but I typically stack these branches and accept the dependency. I have had instances where this has backfired a little bit re: ordering but thankfully with JJ and the very patient little man in my computer named Codex it&#x27;s easy to reorder them and end up with the same diff
    • nvahalik1 hour ago
      The mega merge wouldn&#x27;t handle that based on the way the article shows. You COULD have a revset that includes stacked changes, though. That does work and is what I currently do.
  • dbt001 hour ago
    this is great stuff. I&#x27;ve been ad hoc building a version of this workflow, and it is quite fantastic.<p>I&#x27;m still not as smooth at figuring out conflicts on mega-rebase.
  • juped38 minutes ago
    It&#x27;s interesting to see the strange workflows that come from jujutsu users, as someone who works on git workflows.<p>There&#x27;s some counterproductive stuff in there from my perspective but at its core you&#x27;re keeping up a throwaway integration branch, which is helpful practice if you&#x27;ll ever care about an integration. It&#x27;s annoying with git because the interface for updating your throwaway integration branch is very clunky and easy to get wrong.
  • incognito1242 hours ago
    Finally
    • icorbrey2 hours ago
      Look man life gets busy and I&#x27;m horrible at accepting &quot;good enough&quot; lol
      • schpet1 hour ago
        love to see it, been looking forward to this.
  • LoganDark20 minutes ago
    I saw Jujutsu on HN a few days ago and gave it a try. I picked a bunch of it up in just a couple hours and a couple days later I&#x27;ve completely switched to it for all my projects, it&#x27;s not even close. Git is dead to me.<p>I just wish Jujutsu supported git tags rather than only supporting bookmarks as branches. And I also wish that Jujutsu supported preserving commit dates during rebases.<p>One of my absolute favorite things about Jujutsu is how easy it is to manipulate the commit graph remotely without having to manually checkout each commit first. I&#x27;ve been working on some pull requests to their built-in diff editor lately trying to improve the user experience enough that most conflicts will be fixable without having to use a text editor.<p>Also, the lack of a special staging area means you also never have to fucking stash your changes before you can do practically anything. Your changes always have a place, you can always go somewhere else and you can always come back.