commit only the changed file
[ikiwiki.git] / IkiWiki / Rcs / mercurial.pm
index e4cc6deb376ead514c0f3f3b7be7ddb1057d6c5f..db6a396ac4914630a41407d0df8748641c9aeef2 100644 (file)
@@ -72,16 +72,19 @@ sub rcs_commit ($$$;$$) { #{{{
                $user = possibly_foolish_untaint($user);
        }
        elsif (defined $ipaddr) {
-               $user = "Anonymous from $ipaddr";
+               $user = "Anonymous from ".possibly_foolish_untaint($ipaddr);
        }
        else {
                $user = "Anonymous";
        }
 
        $message = possibly_foolish_untaint($message);
+       if (! length $message) {
+               $message = "no message given";
+       }
 
-       my @cmdline = ("hg", "-q", "-R", "$config{srcdir}", "commit", 
-                      "-m", "$message", "-u", "$user");
+       my @cmdline = ("hg", "-q", "-R", $config{srcdir}, "commit", 
+                      "-m", $message, "-u", $user);
        if (system(@cmdline) != 0) {
                warn "'@cmdline' failed: $!";
        }
@@ -92,7 +95,7 @@ sub rcs_commit ($$$;$$) { #{{{
 sub rcs_add ($) { # {{{
        my ($file) = @_;
 
-       my @cmdline = ("hg", "-q", "-R", "$config{srcdir}", "add", "$file");
+       my @cmdline = ("hg", "-q", "-R", "$config{srcdir}", "add", "$config{srcdir}/$file");
        if (system(@cmdline) != 0) {
                warn "'@cmdline' failed: $!";
        }
@@ -104,7 +107,8 @@ sub rcs_recentchanges ($) { #{{{
        eval q{use CGI 'escapeHTML'};
        error($@) if $@;
 
-       my @cmdline = ("hg", "-R", $config{srcdir}, "log", "-v", "-l", $num);
+       my @cmdline = ("hg", "-R", $config{srcdir}, "log", "-v", "-l", $num,
+               "--style", "default");
        open (my $out, "@cmdline |");
 
        eval q{use Date::Parse};
@@ -138,7 +142,7 @@ sub rcs_recentchanges ($) { #{{{
                        rev        => $info->{"changeset"},
                        user       => $user,
                        committype => "mercurial",
-                       when       => time - str2time($info->{"date"}),
+                       when       => str2time($info->{"date"}),
                        message    => [@message],
                        pages      => [@pages],
                };
@@ -147,16 +151,13 @@ sub rcs_recentchanges ($) { #{{{
        return @ret;
 } #}}}
 
-sub rcs_notify () { #{{{
-       # TODO
-} #}}}
-
 sub rcs_getctime ($) { #{{{
        my ($file) = @_;
 
        # XXX filename passes through the shell here, should try to avoid
        # that just in case
-       my @cmdline = ("hg", "-R", $config{srcdir}, "log", "-v", "-l", '1', $file);
+       my @cmdline = ("hg", "-R", $config{srcdir}, "log", "-v", "-l", '1', 
+               "--style", "default", "$config{srcdir}/$file");
        open (my $out, "@cmdline |");
 
        my @log = mercurial_log($out);