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.
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 ($) { #{{{