Re: [PATCH 0/3] Add a Hook To git commit --message Bash Completion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux