• magic_lobster_party@kbin.run
    link
    fedilink
    arrow-up
    7
    arrow-down
    1
    ·
    edit-2
    4 months ago

    I think squashing is great and I would never want to go back. It helps ensuring:

    • All commits in main have useful messages. No more “fix pipeline errors”, “fix MR comments”, etc.
    • Ensures pipeline has been successful with all commits in main. No need to guess which commits will build and won’t build.
    • Easy to revert commits.
    • Eliminates incompressible history because someone had a bad day with git.
    • Encourages frequent commits. No need to ensure all commits are perfect and good in their own right. Commit when you want to commit even if it’s incomplete work.

    And IMO, if your work warrants multiple commits, then it probably also warrants multiple merge requests. Merge requests should be rather small to make it easier to review.

    Edit: another good thing is that when we decide to release, we can easily look through the commit history for a change log. No more sifting through minor fixes commits.

        • onlinepersona@programming.dev
          link
          fedilink
          arrow-up
          1
          arrow-down
          2
          ·
          4 months ago

          It’s more about the tooling. IDEs make it really simple.

          Also people get scared when they hear it because of utterances like yours. I’m dumb af. Git rebase for your use cases can be renamed to “git edit-history $fromCommit”. Nothing special about it.

          Anti Commercial-AI license

    • eclipse@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      4 months ago

      I agree with most of these but there’s another missing benefit. A lot of the time my colleagues will be iterating on a PR so commits of “fuck, that didn’t work, maybe this” are common.

      I like meaningful commit messages. IMO “fixed the thing” is never good enough. I want to know your intent when I’m doing a blame in 18 months time. However, I don’t expect anyone’s in progress work to be good before it hits main. You don’t want those comments in the final merge, but a squash or rebase is an easy way to rectify that.

    • lad@programming.dev
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      1
      ·
      4 months ago

      Merge requests should be rather small to make it easier to review.

      With this I wholeheartedly agree

      if your work warrants multiple commits, then it probably also warrants multiple merge requests.

      With this not so much, but if you keep your merge requests so small, squashing them is no big deal, that’s a good counterexample for my previous point.

      another good thing is that when we decide to release, we can easily look through the commit history for a change log. No more sifting through minor fixes commits.

      That still requires you to write meaningful messages, just a bit rarer. We do have trouble with change logs, but we had exact same problems when people squashed left and right. Maybe squashing helps self-discipline, though, I haven’t thought about it that way