I've seen a changelog that said "Introduced some bugs, so we can fix them later".
It was a joke, but true nonetheless.
It was a joke
Narrator: Of course, it wasn't.
I've seen a changelog that said "Introduced some bugs, so we can fix them later".
It was a joke, but true nonetheless.
It was a joke
Narrator: Of course, it wasn't.
Good opportunity to say how annoying are update notes like “We are continuing to improve our application. We fixed a couple more issues to make it more stable”. Corporate style, uselessness and the fact that this update can contain some stupid redesign is disgusting.
"We are constantly improving our application. Please keep updates turned on."
I've reached a point where I avoid these types of updates. An update post like that either means nothing important changed or they're up to something.
A while ago I saw that style of patch notes, updated an app, and suddenly I can't use it anymore because it got limited to a maximum of 2 devices. Another time I updated an app putting a harmless "we improved the user experience" message, they put dark mode behind a paywall. This isn't counting the number of times an app got redesigned to make the user experience worse for no reason. Maybe they wanted to justify hiring 5 UI/UX interns in that quarter or something.
The patch notes look harmless, but my god, they are usually up to something.
Yeah. I do the same. That "we are making improvements" text is corporate for "we don't have anything remotely close to change management or quality assurance".
I'm done with programs that need meaningless updates like this every day. All my patience for that was used up with flash and java.
Yep, we also got one of these:
and pretty sure the "y" was typo.
Straight to jail
We have the best commit log in the world, because of jail.
Could be worse. I've got a repo where 30 commits after eachother are just ".". Nothing else.
More than anybody I'd like seeing justice be done.
Be we need him, he fixes our javascript ...
I was hoping one would be nae nae
My personal favorite used to be "Long time no commit"
I call that a checkpoint when I do it. But I do that on my branch that will eventually be squash merged.
I like to go for dark jam poetry, in those commits.
'why is anything? can it be? desolation - oh wait, that variable is mistyped!'
The people that do this are either inept or experts, no inbetween
just a hobbyist here, but wouldn't this actually be a good use for AI? Just copy the code and "provide a git committ title for this code"?
AI might be able to write what you did but not why you did it
Yep this is already a thing built into code editors like webstorm :)
Every one is using AI to make funny pictures. This is what they should be using it for. Look at my diff, generate a commit message.
If you don't know what you've done within a commit, it probably shouldn't be a single commit, with or without AI Although if you're talking about using AI to make funny commit-messages...
Doesn't mean you can't use text inference to make your messages better
Ok Eugene, we get it.
Funny enough, that's a feature of GitHub copilot: https://code.visualstudio.com/docs/editor/github-copilot#_generate-git-commit-messages
https://devblogs.microsoft.com/visualstudio/write-your-git-commits-with-github-copilot/
We're doing that too :)
My commits when merged into main generally read like
[Ticket-123] Summary of what was done. Eg: Return user foo property in bar endpoint
It takes an extra minute or two but it's more informative for the team / future me.
Mine look similar except the body is mostly "the X was doing Y, but it should've been doing Z" or "the docs say bla, $link". I try to separate the individual "update A to do B" in separate commits, but sometimes it just isn't possible.
We squash everything (and rebase rather than merge) so I don't worry much about the individual commits. I like that main is pretty concise and doesn't have a ton of work-in-progess stuff in the log.
We are mortal enemies you and I 😄 I'd much rather have a descriptive commit history than huge commits which make git blame
meaningless. Function over beauty for me.
A nemesis! I'm pretty lucky I guess that no one at my workplace has strong git opinions that differ
Do you have multiple people's commits being squashed together? Or how is blame being made useless for you? I'm at a rather small company where generally it's just one person working on a thing at a time. The blame will point to their squashed commit that, if they wrote a good message like the top of this thread, will give you a lot of context.
Imagine finding a bug in angularjs, doing a git blame and finding this commit
feat(module): new module loader
211 changed files with 1,051 additions and 1,242 deletions.
AngularJS isn't even the worst offender. I've seen backports of multiple fixes getting squashed into one commit for "a clean history" with all the useful commit messages ending up in one commit.
Many user stories I've seen implemented in a sprint take multiple days to write. Sometimes they have 5+ commits with a multitude of files changed and (if done right) each commit has an explanation why something was done or at least what was done. Having a granular view of changes also allows finding related changes quickly with less code to read.
If someone changes the implementation of a function call in one commit and it introduces a bug, it's nice to have only that change instead of the entire class with it and changes in other files too. Additional changes mean now you have to read through more code to be sure that the function implementation change was not done due to a modification of the class or whatever else was changed which might be the actual source of the problem.
IMO squashing commits has its uses. It's a tool in a toolbox, but it's not the only tool.
That angular commit message is a crime.
My squashed commit messages typically enumerate everything I changed and why.
IMO squashing commits has its uses. It’s a tool in a toolbox, but it’s not the only tool.
I think we agree on this.
One case that has come up for me several times: working on a feature, committing as I go. And then I realize some of what I did won't work or isn't what product actually wants. Leaving those commits in the history that show the function doing the wrong thing would be misleading. Especially if that was never actually in production or left my local machine.
I guess I have an unspoken belief that every commit on main should work, but you could achieve that with tags instead.
I was recently spelunking to try to find why something in old code was the way it was. I found the commit where they changed the line, but it was orphaned from the larger context. The message didn't say more than like "change field from footype to bartype", but not why. So I had to try to piece together what other changes were part of this change. If it had been a single commit that showed them like adding the new field, new model, and whatnot, it would have been clearer to me that those things all go together.
kinda like on google play how it says "what's new: no information from the developer" or "what's new: we regularly update our app to fix bugs, improve performance and add new features".
Could be worse:
git commit --allow-empty-message -m ""
All praise our lord and saviour git rebase -i
!
amen!
--amend
I fckd up a git rebase -i
today with git commit -a --amend
...
Thankfully git reflog
allowed me to assemble the branch again ... from pieces.
do_the_thing() {
git commit -am "$(date)"
git push
}
And I'd bet stuff is still broken!
Yeah. Definitely. If it was fixed there would be a commit with log 'works now. WTF?!'
Maybe they tastefully squash merge when they pr/merge into main.
The don't... 😭
At least none of it is WIP...
Meh. At least you know "WIP" means you shouldn't expect that particular commit to work.
It just has to work enough.
There are some, but not in the picture 🙃
Perhaps, but there will a bunch of TODO comments so pick your poison
Why user standard version and conventional commits in the first place? When this is only a fraction of purposeful commit messages
Because if you are creating a changelog automatically based on the commit messages it will be very public and that user will look bad.
https://www.conventionalcommits.org/en/about/#tooling-for-conventional-commits
conv commut are used here...
Somehow they know how get around thing like git hook no-verify
:/
Changelogs are published to stakeholders. So what I'm saying is you don't have to try to enforce a commit style using got hooks if you have public shaming at your disposal.
I remember making a bunch of fixes and calling them after Star Wars movies with the thing I'm fixing or what was broken as the noun.
So you were part of the git clone wars?
Ah the historian.
Could you give an example? "Star Wars: The Bug Fix"?
The upload menace
Attack of the zero
Revenge of Apache
A new filter
The loop strikes back
Return of the analytics
😂 these are great, thanks!
Commit messages of my personal projects are filled with just "fix". Life is too short to write a proper commit message
What The Commit provides a list of all-purpose messages to randomly select between. Would these be better?
🫣 $(rm -rvf .)
About what my coworkers do but even worse with stuff like "save" and "fix"
When there's a limit to the size of a commit message it does make it difficult to actually list all the changes, so sometimes this is all you can write.
I know in theory you're meant to commit little and often, but in practice it doesn't always work out that way.
Even if you have a big commit, you can always write something more descriptive than this. And commit messages can be huge, so the limit shouldn't be an excuse to write a useless message.
For those wondering how to exceed the 70 (80) recommended character limit and still follow best practices:
The first line will be shown as commit message, and the full text can usually be viewed by checking out the commit. Sentences can span multiple lines, but try to keep the line length below 70 characters for best readability.
This off the top of my head, so feel free to correct me if I've misremembered the best practices.
I generally write a single line summary and then a list of the specifics like:
Did stuff (except more detailed than that)
- The first thing I did
- Maybe some more detail about the first thing because there's a rationale to explain
- The second thing I did
- Third thing
Etc.
Meanwhile I'm like