Thread (5 messages) flat view 5 messages, 2 authors, 2016-06-15

Re: [feature request] git: tags instead of commit IDs in blame output

From: Johan Herland <hidden>
Date: 2016-06-15 22:49:21

On Saturday 21 August 2010, Jean Delvare wrote:
Hi there,

I have a feature request for git. In the output of "git blame", I would
like to be able to see tags instead of commit IDs in front of each
line. Basically, I would like to know the first tag which was added
after the last change of every line. Icing on the cake would be the
possibility to filter out some tags (for example to ignore release
candidate tags) but I could easily live without that.

Does it make sense?
Would it be difficult to implement?
To me, it seems what you want to do is convert the commit ID in front of 
every blame-line into the result of running 'git name-rev' (or 'git 
describe') on that line.

To that effect something like this should work:

  git blame <file> |
  while read sha1 rest
  do
      tag=$(git name-rev --tags --name-only $sha1) &&
      echo "$tag $rest"
  done

Of course, if you're doing this at a bigger scale, you want to wrap this in 
a script that (1) caches commitID -> tag mappings, and that (2) runs 'git 
name-rev in its --stdin mode'.


Have fun! :)

...Johan

-- 
Johan Herland, [off-list ref]
www.herland.net
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help