From: Johan Herland Date: Sat, 21 Aug 2010 10:10:22 GMT Subject: Re: [feature request] git: tags instead of commit IDs in blame output Message-ID: <201008211210.23280.johan@herland.net> In-Reply-To: <20100821095352.604a2b85@hyperion.delvare> 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 | 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, www.herland.net