X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/bd7221ae5450e14e9641e01e0c2890a8f018ddb4..aac1428491c850b74800f59926dcbc3c7bc6dd84:/IkiWiki/Plugin/git.pm?ds=inline

diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm
index 992c6226b..fd57ce1e4 100644
--- a/IkiWiki/Plugin/git.pm
+++ b/IkiWiki/Plugin/git.pm
@@ -41,11 +41,14 @@ sub checkconfig () {
 		push @{$config{wrappers}}, {
 			wrapper => $config{git_wrapper},
 			wrappermode => (defined $config{git_wrappermode} ? $config{git_wrappermode} : "06755"),
+			wrapper_background_command => $config{git_wrapper_background_command},
 		};
 	}
 
 	if (defined $config{git_test_receive_wrapper} &&
-	    length $config{git_test_receive_wrapper}) {
+	    length $config{git_test_receive_wrapper} &&
+	    defined $config{untrusted_committers} &&
+	    @{$config{untrusted_committers}}) {
 		push @{$config{wrappers}}, {
 			test_receive => 1,
 			wrapper => $config{git_test_receive_wrapper},
@@ -78,6 +81,13 @@ sub getsetup () {
 			safe => 0, # file
 			rebuild => 0,
 		},
+		git_wrapper_background_command => {
+			type => "string",
+			example => "git push github",
+			description => "shell command for git_wrapper to run, in the background",
+			safe => 0, # command
+			rebuild => 0,
+		},
 		git_wrappermode => {
 			type => "string",
 			example => '06755',
@@ -101,7 +111,7 @@ sub getsetup () {
 		},
 		historyurl => {
 			type => "string",
-			example => "http://git.example.com/gitweb.cgi?p=wiki.git;a=history;f=[[file]]",
+			example => "http://git.example.com/gitweb.cgi?p=wiki.git;a=history;f=[[file]];hb=HEAD",
 			description => "gitweb url to show file history ([[file]] substituted)",
 			safe => 1,
 			rebuild => 1,
@@ -452,7 +462,7 @@ sub rcs_update () {
 	# Update working directory.
 
 	if (length $config{gitorigin_branch}) {
-		run_or_cry('git', 'pull', $config{gitorigin_branch});
+		run_or_cry('git', 'pull', '--prune', $config{gitorigin_branch});
 	}
 }
 
@@ -509,6 +519,8 @@ sub rcs_commit_staged (@) {
 		}
 		if (defined $params{session}->param("nickname")) {
 			$u=encode_utf8($params{session}->param("nickname"));
+			$u=~s/\s+/_/g;
+			$u=~s/[^-_0-9[:alnum:]]+//g;
 		}
 		if (defined $u) {
 			$ENV{GIT_AUTHOR_EMAIL}="$u\@web";