This patch allows for [[sha1]] substitution in the diffurl for git repositories. This is useful for use with cgit which has diffurls of the following form:

/project.git/diff/[[file]]?id=[[sha1_commit]]

diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm
index 5bef928..164210d 100644
--- a/IkiWiki/Plugin/git.pm
+++ b/IkiWiki/Plugin/git.pm
@@ -518,6 +518,7 @@ sub rcs_recentchanges ($) {

            my $diffurl = defined $config{'diffurl'} ? $config{'diffurl'} : "";
            $diffurl =~ s/\[\[file\]\]/$file/go;
+           $diffurl =~ s/\[\[sha1\]\]/$sha1/go;
            $diffurl =~ s/\[\[sha1_parent\]\]/$ci->{'parent'}/go;
            $diffurl =~ s/\[\[sha1_from\]\]/$detail->{'sha1_from'}/go;
            $diffurl =~ s/\[\[sha1_to\]\]/$detail->{'sha1_to'}/go;

done, but I called it sha1_commit since I think that's what it's actually a sha1 of. --Joey

I was at a loss for something more descriptive...I like that much better :) Thanks! --JasonBlevins