From: Jakub Narebski Date: Tue, 03 Jun 2008 12:45:22 GMT Subject: Re: [PATCH] Avoid errors from git-rev-parse in gitweb blame Message-ID: <200806031445.23002.jnareb@gmail.com> In-Reply-To: On Tue, 3 June 2008, Rafael Garcia-Suarez wrote: > 2008/6/3 Jakub Narebski : >> Rafael Garcia-Suarez wrote: >>> >>> - open (my $dd, "-|", git_cmd(), "rev-parse", "$full_rev^") >>> + open (my $dd, "-|", git_cmd(), "rev-parse", '--revs-only', "$full_rev^") >>> or die_error(undef, "Open git-rev-parse failed"); >>> - my $parent_commit = <$dd>; >>> + my $parent_commit = <$dd> || ''; >>> close $dd; >>> chomp($parent_commit); >>> my $blamed = href(action => 'blame', >> >> I'd rather remove this, correct it, or make it optional (this is very >> fork-heavy). > > Not sure how to do the same thing in pure Perl. I was thinking about extending git-blame porcelain format (and also incremental format, of course) by 'parents' (and perhaps 'original-parents') header... > We could however cache the results of git-rev-parse, since the same > rev is likely to appear many times in the list. ...but starting with cache of git-rev-parse results, or optionally allowing extended sha-1 syntax (including ^) in hash* CGI parameters in gitweb would be a good idea. But as I wrote, I'm fine with the patch as it is now. -- Jakub Narebski Poland