From 3dc979470ed07e48c9919b14c0075c44a435cdcd Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 12 Mar 2008 14:44:20 -0400 Subject: 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. --- IkiWiki/Rcs/git.pm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'IkiWiki') 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 ($) { #{{{ -- cgit v1.2.3