On Wed, Feb 13, 2019 at 4:27 PM Petri Gynther <pgynther@xxxxxxxxxx> wrote: > > git developers: > > Small feature request on: > git log --oneline <revision range> -- <path>... > > Could we add an option to: > 1) display all commits in <revision range> unconditionally > 2) use a special marker (e.g. star) for commits that touch <path>... > and list the files from <path>... that this commit modified > > Sample output: > git log --oneline (--annotated?) HEAD~5..HEAD -- Makefile kernel/printk/printk.c > > aaaabbbbccc1 uninteresting commit 1 > * aaaabbbbccc2 fix Makefile > Makefile > aaaabbbbccc3 uninteresting commit 2 > * aaaabbbbccc4 fix Makefile and printk() > Makefile > kernel/printk/printk.c > aaaabbbbccc5 uninteresting commit 3 > > In other words: > - commits that don't touch <path>... are still listed (without special markers) > - commits that touch <path>... are listed with * prefix, and the files > from <path>... that the commit modified are listed below the commit > > This is very useful for kernel LTS merges, when we want to know which > LTS patches in the merge chain actually touched the files that matter > for a specific build target. > > Is this an easy add-on to git log? Adding the "*" is not that hard, I think. The hard part is UI. Soon somebody may want to "list commits touching sub/ then add "*" on ones that touch sub/dir/". Meanwhile I think you can still achieve that with a bit of scripting and processing "git log --raw --oneline <revisions>" output. -- Duy