remove unused variable
[git-grep-footer.git] / git-grep-footer
index a868319653246030ea7f83e7540b0e78a7ee2e48..fd2afe2d29f84ae3cc256edf35c99fd4e7eaae00 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;
@@ -47,8 +48,6 @@ while (readline $inputstream) {
        # if invalid, assume it's latin1
               $_ = decode(cp1252 => $_) if $@;
 
        # if invalid, assume it's latin1
               $_ = decode(cp1252 => $_) if $@;
 
-       my %attr;
-
        BLOCK:
        for (reverse split /\n\n/) {
                my @headers;
        BLOCK:
        for (reverse split /\n\n/) {
                my @headers;
@@ -234,6 +233,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 +260,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.