gitweb: Fix and simplify pickaxe search
authorJakub Narebski <jnareb@gmail.com>
Wed, 5 Mar 2008 08:31:55 +0000 (09:31 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 5 Mar 2008 21:38:34 +0000 (13:38 -0800)
commitc582abae46725504cee9ff91816c979989632f07
tree28f4572569cfb48c38a9278db31f408f8bcde2cc
parentc95b3ad9ea310ec89e31a21edecaaf2c374e2c46
gitweb: Fix and simplify pickaxe search

Instead of using "git-rev-list | git-diff-tree" pipeline for pickaxe
search, use git-log with appropriate options.  Besides reducing number
of forks by one, this allows to use list form of open, which in turn
allow to not worry about quoting arguments and to avoid forking shell.

The options to git-log were chosen to reduce required changes in
pickaxe git command output parsing; gitweb still parses returned
commits one by one.

Parsing "pickaxe" output is simplified: git_search now reuses
parse_difftree_raw_line and writes affected files as they arrive using
the fact that commit name goes always before [raw] diff.

While at it long bug of pickaxe search was fixed, namely that the last
commit found by pickaxe search was never shown.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl