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',
        '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) },
        '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;
 
 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;
 } || 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) {
 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;
 
        # 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).
 
 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
 =back
 
 =head1 EXAMPLES
@@ -257,7 +262,7 @@ Compare various capitalisations and (mis)spellings of signoffs.
 
 List the ten most frequently used attribute names.
 
 
 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.
 
 
 The earliest two usages of each distinct identifier.