Re: [FEATURE] git-commit option to prepend filename to commit message
-Original Message- >From: Jeff King <p...@peff.net> >Sent: Jul 15, 2017 12:05 PM >To: John J Foerch <jjfoe...@earthlink.net> >Cc: git@vger.kernel.org >Subject: Re: [FEATURE] git-commit option to prepend filename to commit message > >On Sat, Jul 15, 2017 at 10:19:34AM -0400, John J Foerch wrote: > >> The feature would be a command line option for git commit that would >> automatically prepend the ": " to the commit message. The >> different cases of its behavior could be: >> >> - commit affecting a single file, with commit message given by -m: >> >>: prepend ": " to the message given by -m >> >> - commit affecting a single file, with commit message from editor: >> >>: pre-fill commit message template with ": " >> >> - commit affecting multiple files: >> >>: use common base directory of all affected files for , >> behaviors as above for use with -m or editor. >> >> Anybody think that this or something like it would be a good convenience? > >Johannes already pointed you to the prepare-commit-msg hook, which I >think is the right solution. I wrote a rough sketch for fun (note that >you could write it in whatever language you like if the mix of >perl/shell isn't to your liking): > >-- >8 -- >#!/bin/sh > ># only kick in for vanilla commit, or "-m" >case "$2" in >""|message) ;; >*) exit 0 >esac > ># common prefix of all changed files >prefix=$( >git diff-index --name-only HEAD | >perl -lne ' >if (!defined $prefix) { >$prefix = $_; >} else { >chop $prefix while !/^\Q$prefix\E/; >} >END { ># trim trailing slash if present >$prefix =~ s{/$}{}; >print $prefix >} >' >) > ># now stick the prefix at the start of the message-in-progress >{ >printf '%s' "$prefix: " >cat "$1" >} >"$1".tmp && >mv "$1".tmp "$1" Thank you for that!
Re: [FEATURE] git-commit option to prepend filename to commit message
Perfect, thank you Hannes! -Original Message- >From: Johannes Sixt <j...@kdbg.org> >Sent: Jul 15, 2017 12:01 PM >To: John J Foerch <jjfoe...@earthlink.net> >Cc: git@vger.kernel.org >Subject: Re: [FEATURE] git-commit option to prepend filename to commit message > >Am 15.07.2017 um 16:19 schrieb John J Foerch: >> The feature would be a command line option for git commit that would >> automatically prepend the ": " to the commit message. >Write a prepare-commit-msg hook: > >https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_prepare_commit_msg > >-- Hannes
Re: [FEATURE] git-commit option to prepend filename to commit message
On Sat, Jul 15, 2017 at 10:19:34AM -0400, John J Foerch wrote: > The feature would be a command line option for git commit that would > automatically prepend the ": " to the commit message. The > different cases of its behavior could be: > > - commit affecting a single file, with commit message given by -m: > >: prepend ": " to the message given by -m > > - commit affecting a single file, with commit message from editor: > >: pre-fill commit message template with ": " > > - commit affecting multiple files: > >: use common base directory of all affected files for , > behaviors as above for use with -m or editor. > > Anybody think that this or something like it would be a good convenience? Johannes already pointed you to the prepare-commit-msg hook, which I think is the right solution. I wrote a rough sketch for fun (note that you could write it in whatever language you like if the mix of perl/shell isn't to your liking): -- >8 -- #!/bin/sh # only kick in for vanilla commit, or "-m" case "$2" in ""|message) ;; *) exit 0 esac # common prefix of all changed files prefix=$( git diff-index --name-only HEAD | perl -lne ' if (!defined $prefix) { $prefix = $_; } else { chop $prefix while !/^\Q$prefix\E/; } END { # trim trailing slash if present $prefix =~ s{/$}{}; print $prefix } ' ) # now stick the prefix at the start of the message-in-progress { printf '%s' "$prefix: " cat "$1" } >"$1".tmp && mv "$1".tmp "$1"
Re: [FEATURE] git-commit option to prepend filename to commit message
Am 15.07.2017 um 16:19 schrieb John J Foerch: The feature would be a command line option for git commit that would automatically prepend the ": " to the commit message. Write a prepare-commit-msg hook: https://www.kernel.org/pub/software/scm/git/docs/githooks.html#_prepare_commit_msg -- Hannes
[FEATURE] git-commit option to prepend filename to commit message
Hello, I had an idea for a feature for git commit that I wanted to pass along and see if maybe others would also think this would be useful. Very often, I make commits that affect a single file, and have simple commit messages of this form: : The feature would be a command line option for git commit that would automatically prepend the ": " to the commit message. The different cases of its behavior could be: - commit affecting a single file, with commit message given by -m: : prepend ": " to the message given by -m - commit affecting a single file, with commit message from editor: : pre-fill commit message template with ": " - commit affecting multiple files: : use common base directory of all affected files for , behaviors as above for use with -m or editor. Anybody think that this or something like it would be a good convenience? Thank you, John Foerch