aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/Http_error_500_when_using_mercurial_backend.mdwn
blob: 638def33787d228a8c9fccf2767d751fdc3f5036 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
This is [[done]]

The mercurial backend is broken when no changelog message is given.

Here is a quick patch, partialy copying the svn backend. 

    --- /usr/share/perl5/IkiWiki/Rcs/mercurial.pm	2007-03-18 23:19:40.000000000 +0100
    +++ ./mercurial.pm	2007-03-24 13:11:36.000000000 +0100
    @@ -70,12 +70,15 @@
     
     	if (defined $user) {
     		$user = possibly_foolish_untaint($user);
    +		$message="web commit by $user".(length $message ? ": $message" : "");
     	}
     	elsif (defined $ipaddr) {
     		$user = "Anonymous from $ipaddr";
    +		$message="web commit from $ipaddr".(length $message ? ": $message" : "");
     	}
     	else {
     		$user = "Anonymous";
    +		$message="web commit by Anonymous".(length $message ? ": $message" : "");
     	}
     
     	$message = possibly_foolish_untaint($message);

> The svn backend puts the user info in the message because that's the only
> way to store the user info, unlike with mercurial. The svn plugin also
> removes that info when getting the RecentChanges info. Since mercurial
> does not do that, it seemed better to me to test for an empty message and
> set it to a dummy commit string, which I've [[bugs/done]]. --[[Joey]]
>>Thanks for the correct fix, Joey. --hb