Re: [PATCH 0/3] Add a Hook To git commit --message Bash Completion
From: brian m. carlson <hidden>
Date: 2024-06-30 21:44:27
On 2024-06-30 at 21:33:33, Mikko Johannes Koivunalho wrote:
I want to create part or all of the `git commit -m *` command's message with a script. I work for one Jira ticket at a time and I need to create many commits which all start with "TKT-123: " (any Jira ticket number/identifier). To make the commits faster, I run `git commit --message="TKT-123: add new file"` on the command line. I want the Bash completion mechanism to propose the message for me. I would fetch the newest ticket number and place it on the command line when I type `git commit --message=<TAB>`. Example: # Doing commit: git commit --message=<TAB> # you would get (also without the closing double quote): git commit --message="ABC-1234
This is easy to do with a prepare-commit-msg or commit-msg hook, and those are the intended tools for this purpose. I've used these hooks to generate a message for a ticket based on the branch name at a past company (so a branch called tkt-123 would result in the TKT-123: entry in the appropriate place in the commit message). While you certainly can commit on the command line, it's not encouraged because you're supposed to write a commit message that explains the commit in detail. Only very rarely is a single line commit message useful, and even in the case you've cited, I'd want to know why you added a new file. What does the file do? What problem is it supposed to solve? Why are we adding a new file when we could add the changes to an existing file? Why is this change valuable at all? That being said, all of this is possible with a prepare-commit-msg hook, and that's a better and more generic way than using the bash completion, which is specific to bash. -- brian m. carlson (they/them or he/him) Toronto, Ontario, CA
Attachments
- signature.asc [application/pgp-signature] 262 bytes