It writes more informative commits than I could ever make so I’m just reading what it says and mostly copy/pasting completely most of the time, I write all of the changes I’ve made into an LLM with a large context window and it write a very detailed commit not just with a title but with bullet points describing each of the changes precisely

  • If a glorified autocomplete algorithm can write more informative and concise commit messages than you, the actual author behind the code, I think you need to sit down and think long and hard what that actually implies.

    • And what does it imply?

      That an AI might be better at writing documentation than the average dev, who is largely inept at writing good documentation?

      Understandably, as technical writing isn’t exactly a focus point or career growing thing for most devs. If it was, we would be writing much better code as well.

      I’ve seen my peers work, they could use something like this. I’d welcome it.

        • I disagree. I am capable of writing a good commit message, I just don’t really want to. Depending on the change, formulating a concise text that includes all relevant information can be quite time consuming.

          I can travel to Italy on foot. Will I do that? Of course not. What does it imply? That I’m incapable of moving my body? Of course not! It just means I’m too lazy to do it and that there are faster ways to get to the same goal.

          • I disagree. I am capable of writing a good commit message, I just don’t really want to. Depending on the change, formulating a concise text that includes all relevant information can be quite time consuming.

            formulating a concise text that includes all relevant information

            how do you write Pull-Requests? Just half-assing it? Writing good commit messages help you write a good PR as well (as it can be just a summary of the things you commited) But yeah, you do you.

        • There is a saying, which I don’t generally agree with. Those who can, do. Those who can’t, teach. That said, writing good code and describing code effectively are two different skills, and there is no guarantee any given individual will have both.

  •  deur   ( @deur@feddit.nl ) 
    link
    fedilink
    27
    edit-2
    8 months ago

    You realize you don’t need to list all your changes in the commit message, right? Anyone can blame or diff said changes.

    The commit message is meant to be used for the high level stuff, the intent, representing / connecting progress towards a larger work item, and other important context from outside the codebase. Insert other reasons that aren’t saying literally what was changed if you feel I have missed something.

    Also one should use their time better if they are spending so much time writing commit messages they feel the need to automate it. Commit messages are rarely read ever again (once merged, lets say), it is not okay to be spending a lot of time on them. That’s not an excuse to write bad commit messages, but you have to balance the time cost with expected utility.

    And an addendum to the above. Describing what you did without reasoning, context, or other information that isnt captured within the changes itself makes your commit messages entirely useless. It makes IDE-inserted in-line blame information useless as well. Thus you are now wasting all the time you spend on commit messages, even if you spend less because it’s automated.

    • Of course he knows why he made the changes. He made them. But computers are much faster as typing and with a sophisticated enough LLM you can offload some gruntwork. I’d argue if you’re not utilizing all the tools at your disposal, you’re not performing like you should.

      • we are talking about programmers/software developers. Speed typing is in our nature. If you can’t type 50 characters faster than writing the prompt to get the LLM to spat out a commit meesage, then I will question your competence.

        Also the opposite is true, when the Boss realise that major parts or grunt work as you say can be automated by utilising LLM, then they would be inclined to employ that and reduce your wage. Because do you really deserve 6 figures when a computer can do the grunt work for their expensive human resources?

      •  lonewalk   ( @lonewalk@lemm.ee ) 
        link
        fedilink
        English
        48 months ago

        y’all need to speak for your own companies. obviously some companies will not allow it, and I’d be personally skeptical of allowing it if I ran a company - but I also work at a place that effectively has given a quiet go-ahead to use it, with objectively talented engineers regularly making use of LLMs for boilerplate and other aspects of work.

        obviously, there’s some calculus on when to use it, and you better damn inspect your outputs, but treating as a blanket rule that OP is a terrible employee at their company when you don’t know the company is rude as hell and uncalled for.

        • I think a lot of people in this thread are just upset/projecting because this is the first real hint that they’re not as much of a special-boy-programmer as they think. OP’s use case is fairly limited in scope, using the LLM for something it is actually pretty good for, and never implied he doesn’t check the output. They’ll never admit it, and will deflect, but they’re just worried.

  • Im shocked at all the negativity, this seems like an obvious good usecase to me, and I’m someone who finds most AI predictive stuff useless.

    I never take more than 3 sec on my commit messages, most of them are “fix bug”, “update lib”, “bump”. So it’s a pretty low bar for it to make better messages than mine.

      • I make really small and really frequent commits. Like I’ll commit all changes every 10 min regardless of if a feature is done or not, and basically use commits like an undo button.

        I still use git history a lot (per file history usually) but even when browsing years and hundreds of commits into the past, I don’t really need detailed/thoughtful messages to find the change I’m looking for. Binary search plus those 2 or 3 word message hints are lightning fast. And the number of times I commit vastly outweighs the number of times I browse the history.

        When it comes to documentation and other people, feature-branches are my “OK I fully finished this thing; here’s a summary”. I’m also not afraid to squash a ton of useless commits together right before making a PR.

        TDLR; spending more than 3 sec doesn’t help future me or current me, so it’s a waste of time

  •  lonewalk   ( @lonewalk@lemm.ee ) 
    link
    fedilink
    English
    48 months ago

    it’d be interesting to see some examples of what your script came up with - I’m a bit skeptical of what an AI would come up with in terms of a commit message, and I’d think you’d need a pretty complex system to get commit messages to be maximally useful. I’ve found LLMs can stray towards being too high level and struggle if you ask more specific questions.

    but I could also see it as being helpful for a sort of audit log for what changed, and I don’t think it would be too harmful, as long as you’re checking what the LLM is generating and making sure there’s corresponding code changes, that it’s not hallucinating etc.

    hard to tell without examples - perhaps you could expand your post with some?

    an aside, sorry you got such an overwhelmingly toxic response. the amount of angry people on this platform who feel the need to morally educate everyone around them objectively sucks and makes it a really unpleasant place to be.

  • I’m really curious to see examples of commit messages.

    And more details on how you achieved it, I’d like to give it a go myself, as some of my coworkers commit messages are less than stellar.

    Does it write in the conventional commit formalism ?

  • So what I get from this is that some people need to be forced to write decent commit messages.

    Echoing what others have mentioned, commit messages need to document why something was changed and put it into the context of the project. You should do this even for private projects, just so 1) you build good habits and 2) if you let the project rest for a while you don’t need to figure put everything from the start again.

  • Okay, so to be honest, at first, I didn’t understand all the ❌negativity, but I shared this with a friend to get her take on the issue, and she 🕵️‍♀️clued me into the fact that webpack already does this with copilot and pull requests, and the results . . . speak for themselves.

    Wow😅. I didn’t think it would be that bad. It seems that every example I find is just incorrect. I’ll look at the code. It will be a two line change, but the summary will be difficult to follow and often says things that are not part of the code changes. Then, there are also contradictions which make the pull requests harder to follow than if you just read the code with no other context. Darn it. I really thought this was a 🧊cool idea.

    I’m definitely going to be sticking to writing my own commits as always.