gitweb: Use rev-list pattern search options.
Use rev-list pattern search options instead of hand coded perl. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
0a5761746c
commit
8e574fb542
@ -4176,20 +4176,20 @@ sub git_search {
|
|||||||
print "<table cellspacing=\"0\">\n";
|
print "<table cellspacing=\"0\">\n";
|
||||||
my $alternate = 1;
|
my $alternate = 1;
|
||||||
if ($searchtype eq 'commit' or $searchtype eq 'author' or $searchtype eq 'committer') {
|
if ($searchtype eq 'commit' or $searchtype eq 'author' or $searchtype eq 'committer') {
|
||||||
|
my $greptype;
|
||||||
|
if ($searchtype eq 'commit') {
|
||||||
|
$greptype = "--grep=";
|
||||||
|
} elsif ($searchtype eq 'author') {
|
||||||
|
$greptype = "--author=";
|
||||||
|
} elsif ($searchtype eq 'committer') {
|
||||||
|
$greptype = "--committer=";
|
||||||
|
}
|
||||||
$/ = "\0";
|
$/ = "\0";
|
||||||
open my $fd, "-|", git_cmd(), "rev-list",
|
open my $fd, "-|", git_cmd(), "rev-list",
|
||||||
"--header", "--parents", $hash, "--"
|
"--header", "--parents", ($greptype . $searchtext),
|
||||||
|
$hash, "--"
|
||||||
or next;
|
or next;
|
||||||
while (my $commit_text = <$fd>) {
|
while (my $commit_text = <$fd>) {
|
||||||
if (!grep m/$searchtext/i, $commit_text) {
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
if ($searchtype eq 'author' && !grep m/\nauthor .*$searchtext/i, $commit_text) {
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
if ($searchtype eq 'committer' && !grep m/\ncommitter .*$searchtext/i, $commit_text) {
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
my @commit_lines = split "\n", $commit_text;
|
my @commit_lines = split "\n", $commit_text;
|
||||||
my %co = parse_commit(undef, \@commit_lines);
|
my %co = parse_commit(undef, \@commit_lines);
|
||||||
if (!%co) {
|
if (!%co) {
|
||||||
|
Loading…
Reference in New Issue
Block a user