]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/git.pm
git: When updating from remote, use git pull --prune, to avoid possible errors from...
[ikiwiki.git] / IkiWiki / Plugin / git.pm
index 992c6226b6b69f859b80458fb6b21da52a28a49c..fd57ce1e466de034e457a365a13f8960d04957f3 100644 (file)
@@ -41,11 +41,14 @@ sub checkconfig () {
                push @{$config{wrappers}}, {
                        wrapper => $config{git_wrapper},
                        wrappermode => (defined $config{git_wrappermode} ? $config{git_wrappermode} : "06755"),
                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} &&
                };
        }
 
        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},
                push @{$config{wrappers}}, {
                        test_receive => 1,
                        wrapper => $config{git_test_receive_wrapper},
@@ -78,6 +81,13 @@ sub getsetup () {
                        safe => 0, # file
                        rebuild => 0,
                },
                        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',
                git_wrappermode => {
                        type => "string",
                        example => '06755',
@@ -101,7 +111,7 @@ sub getsetup () {
                },
                historyurl => {
                        type => "string",
                },
                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,
                        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}) {
        # 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"));
                }
                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";
                }
                if (defined $u) {
                        $ENV{GIT_AUTHOR_EMAIL}="$u\@web";