option to show commit hashes
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 5 Feb 2011 06:13:43 +0000 (07:13 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Sat, 5 Feb 2011 06:32:55 +0000 (07:32 +0100)
git-grep-footer

index a868319653246030ea7f83e7540b0e78a7ee2e48..f739228d63fbfaee6d0651df1e94b0f7c53161d5 100755 (executable)
@@ -17,6 +17,7 @@ GetOptions(\my %opt,
        'grep|S=s',
        'min|min-count|unique|u:i',
        'max|max-count|show|n:i',
+       'hash|H!',
        'version|V'  => sub { Getopt::Long::VersionMessage() },
        'usage|h'    => sub { Getopt::Long::HelpMessage() },
        'help|man|?' => sub { Getopt::Long::HelpMessage(-verbose => 2) },
@@ -24,7 +25,7 @@ GetOptions(\my %opt,
 
 my $inputstream = $opt{''} ? \*ARGV : eval {
        require Git;
-       Git::command_output_pipe('log', '-z', '--pretty=format:%b', @ARGV);
+       Git::command_output_pipe('log', '-z', '--pretty=format:%h%n%b', @ARGV);
 } || die "Automatic git log failed: $@";
 
 local $| = 1;
@@ -35,8 +36,8 @@ my $HEADERMATCH = qr/ [a-z]+ (?: (?:-\w+)+ | \ by ) | cc | reference /ix;
 my (%headercount, @headercache);
 
 while (readline $inputstream) {
-       s/^([0-9a-f]{4,40})\n//m and
-       my $hash = $1;
+       s/^([0-9a-f]{4,40})\n//m;
+       my $hash = $opt{hash} ? $1 : undef;
 
        # strip commit seperator
        chomp;
@@ -234,6 +235,10 @@ Additional samples are optionally given upto the given maximum.
 Prefixes (unique) lines by the number of occurrences.
 Causes output to be buffered until all input has been read (obviously).
 
+=item -H, --hash
+
+Prefixes the SHA1 hash of the (or a) matching commit.
+
 =back
 
 =head1 EXAMPLES
@@ -257,7 +262,7 @@ Compare various capitalisations and (mis)spellings of signoffs.
 
 List the ten most frequently used attribute names.
 
-=item git-grep-footer -n2 -i -s -- --reverse
+=item git-grep-footer -n2 -i -s --hash -- --reverse
 
 The earliest two usages of each distinct identifier.