push @{$config{wrappers}}, {
test_receive => 1,
wrapper => $config{git_test_receive_wrapper},
- wrappermode => "0755",
+ wrappermode => (defined $config{git_wrappermode} ? $config{git_wrappermode} : "06755"),
};
}
} #}}}
diffurl => {
type => "string",
example => "http://git.example.com/gitweb.cgi?p=wiki.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]",
- description => "gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], and [[file]] substituted)",
+ description => "gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], [[sha1_commit]] and [[file]] substituted)",
safe => 1,
rebuild => 1,
},
$diffurl =~ s/\[\[sha1_parent\]\]/$ci->{'parent'}/go;
$diffurl =~ s/\[\[sha1_from\]\]/$detail->{'sha1_from'}/go;
$diffurl =~ s/\[\[sha1_to\]\]/$detail->{'sha1_to'}/go;
+ $diffurl =~ s/\[\[sha1_commit\]\]/$sha1/go;
push @pages, {
page => pagename($file),
# Avoid chdir when running git here, because the changes
# are in the master git repo, not the srcdir repo.
- # The pre-receive hook already puts us in the right place.
+ # The pre-recieve hook already puts us in the right place.
$no_chdir=1;
my @changes=git_commit_info($oldrev."..".$newrev);
$no_chdir=0;
elsif ($detail->{'status'} =~ /^[AM]+\d*$/) {
$action="add";
$mode=$detail->{'mode_to'};
- if (! pagetype($file)) {
- eval q{use File::Temp};
- die $@ if $@;
- my $fh;
- ($fh, $path)=File::Temp::tempfile("XXXXXXXXXX", UNLINK => 1);
- if (system("git show ".$detail->{sha1_to}." > '$path'") != 0) {
- error("failed writing temp file");
- }
- }
}
elsif ($detail->{'status'} =~ /^[DAM]+\d*/) {
$action="remove";
error gettext("you are not allowed to change file modes");
}
}
+
+ # extract attachment to temp file
+ if (($action eq 'add' || $action eq 'change') &&
+ ! pagetype($file)) {
+ eval q{use File::Temp};
+ die $@ if $@;
+ my $fh;
+ ($fh, $path)=File::Temp::tempfile("XXXXXXXXXX", UNLINK => 1);
+ if (system("git show ".$detail->{sha1_to}." > '$path'") != 0) {
+ error("failed writing temp file");
+ }
+ }
push @rets, {
file => $file,