From: Joey Hess Date: Wed, 12 Mar 2008 18:44:20 +0000 (-0400) Subject: use git show to get the diff X-Git-Tag: 2.41~137 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3dc979470ed07e48c9919b14c0075c44a435cdcd;p=ikiwiki.git use git show to get the diff If a diff of the firsst commit in a git repo was requested, it would fail and print to stderr since first^ isn't valid. Using git show will always work. --- diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index 9f65e86aa..9306a513e 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -414,7 +414,16 @@ sub rcs_recentchanges ($) { #{{{ sub rcs_diff ($) { #{{{ my $rev=shift; my ($sha1) = $rev =~ /^($sha1_pattern)$/; # untaint - return join("\n", run_or_non("git", "diff", "$sha1^", $sha1)); + my $ret; + foreach my $line (run_or_non("git", "show", $sha1)) { + if (defined $ret) { + $ret.=$line."\n"; + } + elsif ($line=~/^diff --git/) { + $ret=$line."\n"; + } + } + return $ret; } #}}} sub rcs_getctime ($) { #{{{