Re: [Feature request] "Hooks" for git log
- From
- Konstantin Tokarev <annulen@yandex.ru>
- Date
- Mar 12, 2020, 16:21 UTC
- Message-ID
- <628991584029077@iva6-9bda19f40fc4.qloud-c.yandex.net>
- In-Reply-To
- <558831584024173@sas1-438a02fc058e.qloud-c.yandex.net>
12.03.2020, 18:06, "Konstantin Tokarev" <annulen@yandex.ru>:
Show 15 quoted lines
> Hello, > > While it's possible to filter commits in `git log` by their contents with > --grep and -S options, it's not always possible for formulate desirable > filter in their terms. > > I think it would be very useful if git log provided new option named e.g. > --hook or --script, which would take script path as an argument. > git log would follow it's normal way of operation, applying other filtering > options it was given, however intstead of printing info on commit that > matches filters, it invokes script with commit hash as an argument. > Script can do whatever it needs with hash, including any git operations, > can print commit info to log if needed, or print something else, or keep > silence. If script returns non-zero, parent git log command terminates, > otherwise it continues.
On the second thought, its user interface should probably be more like `git submodule foreach` to allow use of one-liners. For example, there is a bug which I've recently reported that prevents use of
git log --follow --full-diff <path>
It could have been worked around easily as
git log --follow <path> foreach git show $1
(syntax may be different)
-- Regards, Konstantin