On Thu, Sep 9, 2021 at 12:39 AM Jeff King <peff@xxxxxxxx> wrote: > > On Wed, Sep 08, 2021 at 11:40:20PM +0300, Aleksey Midenkov wrote: > > > Is that possible/how to print hunk numbers with git diff? > > > > F.ex. instead of: > > > > @@ -106,7 +110,6 @@ while ($r < $statement_count) > > ... > > > > To print something like: > > > > @@ -106,7 +110,6 @@ 4 @@ while ($r < $statement_count) > > ... > > > > filterdiff uses hunk numbers intensively. Work with line-number ranges > > is not so effective. > > No, Git doesn't know how to do any annotations on hunk lines (aside from > finding and reporting the funcname lines from the source). So you'd have > to post-process it, like: > > git diff ... | > perl -pe 's/^@@.*?@@/join(" ", $&, ++$i, "@@")/e' > > but I'm not sure if that's quite what you're after. If you're using > filterdiff to pick out hunks, then piping through "filterdiff > --annotate" does something similar. > > If you want to post-process your diffs all the time, you can do > something like: > > git config pager.color false > git config pager.diff 'filterdiff --annotate | less' > Thanks! git config pager.color false git config pager.diff 'filterdiff --annotate | colordiff | less -FRX' git config pager.show 'filterdiff --annotate | colordiff | less -FRX' did the job for me. > to show the annotations anytime the output is going to a terminal. > Though sadly filterdiff does not handle the colors; other > post-processors like diff-highlight parse around them. > > And finally, if your ultimate goal is to use filterdiff to pick out > hunks, you might find using Git's picking tools like "checkout -p" > easier. Even if you are starting with an actual patch, you can apply it > and then pick out bits, like: > > git checkout --detach ;# temporary head for applying patch > git apply </path/to/patch > git commit -m "temporary commit for patch" > git checkout - ;# back to the original branch > git checkout -p HEAD@{1} ;# now selectively grab parts > > Of course that only helps if the patch actually applies. If your goal is > to filter out hunks that don't apply, it won't help. :) > > -Peff -- @midenok