]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
* Removed support for sending commit notification mails. Along with it went
authorJoey Hess <joey@kodama.kitenet.net>
Tue, 29 Jan 2008 05:36:58 +0000 (00:36 -0500)
committerJoey Hess <joey@kodama.kitenet.net>
Tue, 29 Jan 2008 05:36:58 +0000 (00:36 -0500)
  the svnrepo and notify settings, though both will be ignored if left in
  setup files.

26 files changed:
IkiWiki.pm
IkiWiki/CGI.pm
IkiWiki/Rcs/Stub.pm
IkiWiki/Rcs/git.pm
IkiWiki/Rcs/mercurial.pm
IkiWiki/Rcs/monotone.pm
IkiWiki/Rcs/svn.pm
IkiWiki/Rcs/tla.pm
IkiWiki/UserInfo.pm
IkiWiki/Wrapper.pm
debian/changelog
doc/bugs/git_mail_notification_race.mdwn
doc/features.mdwn
doc/ikiwiki.setup
doc/index/discussion.mdwn
doc/rcs/monotone.mdwn
doc/setup.mdwn
doc/todo/__34__subscribe_to_this_page__34___checkbox_on_edit_form.mdwn
doc/todo/bzr.mdwn
doc/todo/mercurial.mdwn
doc/usage.mdwn
doc/wikitemplates.mdwn
docwiki.setup
ikiwiki.in
t/svn.t
templates/notifymail.tmpl [deleted file]

index b326dbdb8f1c8e59576e6a57fb6a36376337ee51..2c3ddac238a3e724d5b504b0f5d3c093eec45557 100644 (file)
@@ -62,7 +62,6 @@ sub defaultconfig () { #{{{
        cgi => 0,
        post_commit => 0,
        rcs => '',
        cgi => 0,
        post_commit => 0,
        rcs => '',
-       notify => 0,
        url => '',
        cgiurl => '',
        historyurl => '',
        url => '',
        cgiurl => '',
        historyurl => '',
@@ -76,7 +75,6 @@ sub defaultconfig () { #{{{
        w3mmode => 0,
        wrapper => undef,
        wrappermode => undef,
        w3mmode => 0,
        wrapper => undef,
        wrappermode => undef,
-       svnrepo => undef,
        svnpath => "trunk",
        gitorigin_branch => "origin",
        gitmaster_branch => "master",
        svnpath => "trunk",
        gitorigin_branch => "origin",
        gitmaster_branch => "master",
index 5062a448f08bc72161ab4757a55ca037566d7a29..55ee5d86ae1a61ea7c28750b18d2c8f6dd3924e7 100644 (file)
@@ -242,9 +242,6 @@ sub cgi_prefs ($$) { #{{{
        
        $form->field(name => "do", type => "hidden");
        $form->field(name => "email", size => 50, fieldset => "preferences");
        
        $form->field(name => "do", type => "hidden");
        $form->field(name => "email", size => 50, fieldset => "preferences");
-       $form->field(name => "subscriptions", size => 50,
-               fieldset => "preferences",
-               comment => "(".htmllink("", "", "ikiwiki/PageSpec", noimageinline => 1).")");
        $form->field(name => "banned_users", size => 50,
                fieldset => "admin");
        
        $form->field(name => "banned_users", size => 50,
                fieldset => "admin");
        
@@ -256,8 +253,6 @@ sub cgi_prefs ($$) { #{{{
        if (! $form->submitted) {
                $form->field(name => "email", force => 1,
                        value => userinfo_get($user_name, "email"));
        if (! $form->submitted) {
                $form->field(name => "email", force => 1,
                        value => userinfo_get($user_name, "email"));
-               $form->field(name => "subscriptions", force => 1,
-                       value => userinfo_get($user_name, "subscriptions"));
                if (is_admin($user_name)) {
                        $form->field(name => "banned_users", force => 1,
                                value => join(" ", get_banned_users()));
                if (is_admin($user_name)) {
                        $form->field(name => "banned_users", force => 1,
                                value => join(" ", get_banned_users()));
@@ -274,11 +269,9 @@ sub cgi_prefs ($$) { #{{{
                return;
        }
        elsif ($form->submitted eq 'Save Preferences' && $form->validate) {
                return;
        }
        elsif ($form->submitted eq 'Save Preferences' && $form->validate) {
-               foreach my $field (qw(email subscriptions)) {
-                       if (defined $form->field($field)) {
-                               userinfo_set($user_name, $field, $form->field($field)) ||
-                                       error("failed to set $field");
-                       }
+               if (defined $form->field('email')) {
+                       userinfo_set($user_name, 'email', $form->field('email')) ||
+                               error("failed to set email");
                }
                if (is_admin($user_name)) {
                        set_banned_users(grep { ! is_admin($_) }
                }
                if (is_admin($user_name)) {
                        set_banned_users(grep { ! is_admin($_) }
index ab80a9a474b211abd8202c4bbb53ec57b68bf90b..df347f6a994711977fd2f88c10393c53406d14b5 100644 (file)
@@ -57,13 +57,6 @@ sub rcs_recentchanges ($) {
        # }
 }
 
        # }
 }
 
-sub rcs_notify () {
-       # This function is called when a change is committed to the wiki,
-       # and ikiwiki is running as a post-commit hook from the RCS.
-       # It should examine the repository to somehow determine what pages
-       # changed, and then send emails to users subscribed to those pages.
-}
-
 sub rcs_getctime ($) {
        # Optional, used to get the page creation time from the RCS.
        error gettext("getctime not implemented");
 sub rcs_getctime ($) {
        # Optional, used to get the page creation time from the RCS.
        error gettext("getctime not implemented");
index f70582136569b270d57c27591e961a6f1216c142..26a6f42661a652249c8a4c7475dfb45578b8fc03 100644 (file)
@@ -419,47 +419,6 @@ sub rcs_recentchanges ($) { #{{{
        return @rets;
 } #}}}
 
        return @rets;
 } #}}}
 
-sub rcs_notify () { #{{{
-       # Send notification mail to subscribed users.
-       #
-       # In usual Git usage, hooks/update script is presumed to send
-       # notification mails (see git-receive-pack(1)).  But we prefer
-       # hooks/post-update to support IkiWiki commits coming from a
-       # cloned repository (through command line) because post-update
-       # is called _after_ each ref in repository is updated (update
-       # hook is called _before_ the repository is updated).
-       #
-       # Here, we rely on a simple fact: we can extract all parts of the
-       # notification content by parsing the "HEAD" commit.
-
-       my $ci = git_commit_info('HEAD');
-       return if !defined $ci;
-
-       my @changed_pages = map { $_->{'file'} } @{ $ci->{'details'} };
-
-       my ($user, $message);
-       if (@{ $ci->{'comment'} }[0] =~ m/$config{web_commit_regexp}/) {
-               $user    = defined $2 ? $2 : $3;
-               $message = $4;
-       }
-       else {
-               $user    = $ci->{'author_username'};
-               $message = join "\n", @{ $ci->{'comment'} };
-       }
-
-       my $sha1 = $ci->{'sha1'};
-
-       require IkiWiki::UserInfo;
-       send_commit_mails(
-               sub {
-                       $message;
-               },
-               sub {
-                       join "\n", run_or_die('git', 'diff', "${sha1}^", $sha1);
-               }, $user, @changed_pages
-       );
-} #}}}
-
 sub rcs_getctime ($) { #{{{
        my $file=shift;
        # Remove srcdir prefix
 sub rcs_getctime ($) { #{{{
        my $file=shift;
        # Remove srcdir prefix
index 13a88379c0fb2ae47ba6a4f7ebe5592c037a0484..db6a396ac4914630a41407d0df8748641c9aeef2 100644 (file)
@@ -151,10 +151,6 @@ sub rcs_recentchanges ($) { #{{{
        return @ret;
 } #}}}
 
        return @ret;
 } #}}}
 
-sub rcs_notify () { #{{{
-       # TODO
-} #}}}
-
 sub rcs_getctime ($) { #{{{
        my ($file) = @_;
 
 sub rcs_getctime ($) { #{{{
        my ($file) = @_;
 
index b48ac92dbfa22c6adc16cfee00c83aacceb8617b..0ae2c1a3268e26489721de080078e07ab0bacbb5 100644 (file)
@@ -452,54 +452,6 @@ sub rcs_recentchanges ($) { #{{{
        return @ret;
 } #}}}
 
        return @ret;
 } #}}}
 
-sub rcs_notify () { #{{{
-       debug("The monotone rcs_notify function is currently untested. Use at own risk!");
-       
-       if (! exists $ENV{REV}) {
-               error(gettext("REV is not set, not running from mtn post-commit hook, cannot send notifications"));
-       }
-       if ($ENV{REV} !~ m/($sha1_pattern)/) { # sha1 is untainted now
-               error(gettext("REV is not a valid revision identifier, cannot send notifications"));
-       }
-       my $rev = $1;
-       
-       check_config();
-
-       my $automator = Monotone->new();
-       $automator->open(undef, $config{mtnrootdir});
-
-       my $certs = [read_certs($automator, $rev)];
-       my $user;
-       my $message;
-       my $when;
-
-       foreach my $cert (@$certs) {
-               if ($cert->{signature} eq "ok" && $cert->{trust} eq "trusted") {
-                       if ($cert->{name} eq "author") {
-                               $user = $cert->{value};
-                       } elsif ($cert->{name} eq "date") {
-                               $when = $cert->{value};
-                       } elsif ($cert->{name} eq "changelog") {
-                               $message = $cert->{value};
-                       }
-               }
-       }
-               
-       my @changed_pages = get_changed_files($automator, $rev);
-       
-       $automator->close();
-       
-       require IkiWiki::UserInfo;
-       send_commit_mails(
-               sub {
-                       return $message;
-               },
-               sub {
-                       `mtn --root=$config{mtnrootdir} au content_diff -r $rev`;
-               },
-               $user, @changed_pages);
-} #}}}
-
 sub rcs_getctime ($) { #{{{
        my $file=shift;
 
 sub rcs_getctime ($) { #{{{
        my $file=shift;
 
index 075f8da5a32daff4ed4794fccb0633115c32f603..f7d2242f043209cd9ca7291d3af6186c0407990e 100644 (file)
@@ -217,44 +217,6 @@ sub rcs_recentchanges ($) { #{{{
        return @ret;
 } #}}}
 
        return @ret;
 } #}}}
 
-sub rcs_notify () { #{{{
-       if (! exists $ENV{REV}) {
-               error(gettext("REV is not set, not running from svn post-commit hook, cannot send notifications"));
-       }
-       my $rev=int(possibly_foolish_untaint($ENV{REV}));
-       
-       my $user=`svnlook author $config{svnrepo} -r $rev`;
-       chomp $user;
-       
-       my $message=`svnlook log $config{svnrepo} -r $rev`;
-       if ($message=~/$config{web_commit_regexp}/) {
-               $user=defined $2 ? "$2" : "$3";
-               $message=$4;
-       }
-
-       my @changed_pages;
-       foreach my $change (`svnlook changed $config{svnrepo} -r $rev`) {
-               chomp $change;
-               if (length $config{svnpath}) {
-                       if ($change =~ /^[A-Z]+\s+\Q$config{svnpath}\E\/(.*)/) {
-                               push @changed_pages, $1;
-                       }
-               }
-               else {
-                       push @changed_pages, $change;
-               }
-       }
-       
-       require IkiWiki::UserInfo;
-       send_commit_mails(
-               sub {
-                       return $message;
-               },
-               sub {
-                       `svnlook diff $config{svnrepo} -r $rev --no-diff-deleted`;
-               }, $user, @changed_pages);
-} #}}}
-
 sub rcs_getctime ($) { #{{{
        my $file=shift;
 
 sub rcs_getctime ($) { #{{{
        my $file=shift;
 
index 15824ffaf71a6e465da23375c699323b819bf58a..ecc561bde86691489ab726eec677741f7fb6691f 100644 (file)
@@ -160,51 +160,6 @@ sub rcs_recentchanges ($) {
        return @ret;
 }
 
        return @ret;
 }
 
-sub rcs_notify () { #{{{
-       # FIXME: Not set
-       if (! exists $ENV{ARCH_VERSION}) {
-               error("ARCH_VERSION is not set, not running from tla post-commit hook, cannot send notifications");
-       }
-       my $rev=int(possibly_foolish_untaint($ENV{REV}));
-
-       eval q{use Mail::Header};
-       error($@) if $@;
-       open(LOG, $ENV{"ARCH_LOG"});
-       my $head = Mail::Header->new(\*LOG);
-       close(LOG);
-
-       my $user = $head->get("Creator");
-
-       my $newfiles = $head->get("New-files");
-       my $modfiles = $head->get("Modified-files");
-       my $remfiles = $head->get("Removed-files");
-
-       my @changed_pages = grep { !/(^.*\/)?\.arch-ids\/.*\.id$/ }
-               split(/ /, "$newfiles $modfiles $remfiles .arch-ids/fake.id");
-
-       require IkiWiki::UserInfo;
-       send_commit_mails(
-               sub {
-                       my $message = $head->get("Summary");
-                       if ($message =~ /$config{web_commit_regexp}/) {
-                               $user=defined $2 ? "$2" : "$3";
-                               $message=$4;
-                       }
-               },
-               sub {
-                       my $logs = `tla logs -d $config{srcdir}`;
-                       my @changesets = reverse split(/\n/, $logs);
-                       my $i;
-
-                       for($i=0;$i<$#changesets;$i++) {
-                               last if $changesets[$i] eq $rev;
-                       }
-       
-                       my $revminusone = $changesets[$i+1];
-                       `tla diff -d $ENV{ARCH_TREE_ROOT} $revminusone`;
-               }, $user, @changed_pages);
-} #}}}
-
 sub rcs_getctime ($) { #{{{
        my $file=shift;
        eval q{use Date::Parse};
 sub rcs_getctime ($) { #{{{
        my $file=shift;
        eval q{use Date::Parse};
index cfc27609daee3f37497f4e6a8a7d2d762dc0883a..2ffc51c55feb6978e47c6e2147eaf45c414ef8f5 100644 (file)
@@ -92,91 +92,4 @@ sub set_banned_users (@) { #{{{
        return userinfo_store($userinfo);
 } #}}}
 
        return userinfo_store($userinfo);
 } #}}}
 
-sub commit_notify_list ($@) { #{{{
-       my $committer=shift;
-       my @pages = map pagename($_), @_;
-
-       my @ret;
-       my $userinfo=userinfo_retrieve();
-       foreach my $user (keys %{$userinfo}) {
-               next if $user eq $committer;
-               if (exists $userinfo->{$user}->{subscriptions} &&
-                   length $userinfo->{$user}->{subscriptions} &&
-                   exists $userinfo->{$user}->{email} &&
-                   length $userinfo->{$user}->{email} &&
-                   grep { pagespec_match($_,
-                                   $userinfo->{$user}->{subscriptions}, 
-                                   user => $committer) }
-                       map pagename($_), @_) {
-                       push @ret, $userinfo->{$user}->{email};
-               }
-       }
-       return @ret;
-} #}}}
-
-sub send_commit_mails ($$$@) { #{{{
-       my $messagesub=shift;
-       my $diffsub=shift;
-       my $user=shift;
-       my @changed_pages=@_;
-
-       return unless @changed_pages;
-
-       my @email_recipients=commit_notify_list($user, @changed_pages);
-       if (@email_recipients) {
-               # TODO: if a commit spans multiple pages, this will send
-               # subscribers a diff that might contain pages they did not
-               # sign up for. Should separate the diff per page and
-               # reassemble into one mail with just the pages subscribed to.
-               my $diff=$diffsub->();
-               my $message=$messagesub->();
-
-               my $pagelist;
-               if (@changed_pages > 2) {
-                       $pagelist="$changed_pages[0] $changed_pages[1] ...";
-               }
-               else {
-                       $pagelist.=join(" ", @changed_pages);
-               }
-               #translators: The three variables are the name of the wiki,
-               #translators: A list of one or more pages that were changed,
-               #translators: And the name of the user making the change.
-               #translators: This is used as the subject of a commit email.
-               my $subject=sprintf(gettext("update of %s's %s by %s"), 
-                       $config{wikiname}, $pagelist, $user);
-
-               my $template=template("notifymail.tmpl");
-               $template->param(
-                       wikiname => $config{wikiname},
-                       diff => $diff,
-                       user => $user,
-                       message => $message,
-               );
-
-               # Daemonize, in case the mail sending takes a while.
-               defined(my $pid = fork) or error("Can't fork: $!");
-               return if $pid;
-               setsid() or error("Can't start a new session: $!");
-               chdir '/';
-               open STDIN, '/dev/null';
-               open STDOUT, '>/dev/null';
-               open STDERR, '>&STDOUT' or error("Can't dup stdout: $!");
-
-               unlockwiki(); # don't need to keep a lock on the wiki
-
-               eval q{use Mail::Sendmail};
-               error($@) if $@;
-               foreach my $email (@email_recipients) {
-                       sendmail(
-                               To => $email,
-                               From => "$config{wikiname} <$config{adminemail}>",
-                               Subject => $subject,
-                               Message => $template->output,
-                       );
-               }
-
-               exit 0; # daemon process done
-       }
-} #}}}
-
 1
 1
index 2103ea53a501b4a048192ebc289ec0eade86741a..90a4c46c79141419c872e2f64102658f41dcefda 100644 (file)
@@ -36,22 +36,6 @@ sub gen_wrapper () { #{{{
                addenv("$var", s);
 EOF
        }
                addenv("$var", s);
 EOF
        }
-       if ($config{rcs} eq "svn" && $config{notify}) {
-               # Support running directly as hooks/post-commit by passing
-               # $2 in REV in the environment.
-               $envsave.=<<"EOF"
-       if (argc == 3)
-               addenv("REV", argv[2]);
-       else if ((s=getenv("REV")))
-               addenv("REV", s);
-EOF
-       }
-       if ($config{rcs} eq "tla" && $config{notify}) {
-               $envsave.=<<"EOF"
-       if ((s=getenv("ARCH_VERSION")))
-               addenv("ARCH_VERSION", s);
-EOF
-       }
        
        $Data::Dumper::Indent=0; # no newlines
        my $configstring=Data::Dumper->Dump([\%config], ['*config']);
        
        $Data::Dumper::Indent=0; # no newlines
        my $configstring=Data::Dumper->Dump([\%config], ['*config']);
index b57ef1178ff451d74a515a03e5cd4f1aa58a1b74..47273ea94a994adab27730bcc049e2597cd9b147 100644 (file)
@@ -23,6 +23,9 @@ ikiwiki (2.21) UNRELEASED; urgency=low
     function.
   * Pages with extensions starting with "_" are internal-use, and will
     not be rendered or web-edited.
     function.
   * Pages with extensions starting with "_" are internal-use, and will
     not be rendered or web-edited.
+  * Removed support for sending commit notification mails. Along with it went
+    the svnrepo and notify settings, though both will be ignored if left in
+    setup files.
 
  -- Joey Hess <joeyh@debian.org>  Fri, 11 Jan 2008 15:09:37 -0500
 
 
  -- Joey Hess <joeyh@debian.org>  Fri, 11 Jan 2008 15:09:37 -0500
 
index 3538b0764736ac765672d79321a96dabdb0feb24..58bd82325629597c0e6fbd42972117d84a6f8505 100644 (file)
@@ -1,3 +1,5 @@
+[[done]] (in this branch); fixed removing email notification support!
+
 I was suprised to receive two mails from ikiwiki about one web edit:
 
         1   F Oct 30 To joey+ikiwiki update of ikiwiki's plugins/contrib/gallery.mdwn by http://arpitjain11.myopenid.com/
 I was suprised to receive two mails from ikiwiki about one web edit:
 
         1   F Oct 30 To joey+ikiwiki update of ikiwiki's plugins/contrib/gallery.mdwn by http://arpitjain11.myopenid.com/
index a7b5c19ab59c3ee603c60e238d7cd464c628d34c..42eede916302e3ab5346f1b29f9258ffa5986f89 100644 (file)
@@ -127,7 +127,7 @@ with that there's no new commit marker syntax to learn.
 
 Nearly the definition of a wiki, although perhaps ikiwiki challenges how
 much of that web gunk a wiki really needs. These features are optional
 
 Nearly the definition of a wiki, although perhaps ikiwiki challenges how
 much of that web gunk a wiki really needs. These features are optional
-and can be enabled by enabling [[CGI]].
+and can be enabled by enabling [[CGI]] and a [[Revision_Control_Systems|rcs]].
 
 ### User registration
 
 
 ### User registration
 
@@ -161,11 +161,6 @@ Well, sorta. Rather than implementing YA history browser, it can link to
 ikiwiki can use the [[HyperEstraier]] search engine to add powerful
 full text search capabilities to your wiki.
 
 ikiwiki can use the [[HyperEstraier]] search engine to add powerful
 full text search capabilities to your wiki.
 
-### Commit mails
-
-ikiwiki can be configured to send you commit mails with diffs of changes
-to selected pages.
-
 ### [[w3mmode]]
 
 Can be set up so that w3m can be used to browse a wiki and edit pages
 ### [[w3mmode]]
 
 Can be set up so that w3m can be used to browse a wiki and edit pages
index 44cb354252be1ca6d2f5c725ad0fb448385ec8df..c9616e84923a4e3ae078f309e32dc7cf4079a494 100644 (file)
@@ -23,7 +23,6 @@ use IkiWiki::Setup::Standard {
        #rcs => "svn",
        #historyurl => "http://svn.example.org/trunk/[[file]]",
        #diffurl => "http://svn.example.org/trunk/[[file]]?root=wiki&amp;r1=[[r1]]&amp;r2=[[r2]]",
        #rcs => "svn",
        #historyurl => "http://svn.example.org/trunk/[[file]]",
        #diffurl => "http://svn.example.org/trunk/[[file]]?root=wiki&amp;r1=[[r1]]&amp;r2=[[r2]]",
-       #svnrepo => "/svn/wiki",
        #svnpath => "trunk",
 
        # Git stuff.
        #svnpath => "trunk",
 
        # Git stuff.
@@ -72,8 +71,6 @@ use IkiWiki::Setup::Standard {
                #       # what you want.
                #       wrapper => "/svn/wikirepo/hooks/post-commit",
                #       wrappermode => "04755",
                #       # what you want.
                #       wrapper => "/svn/wikirepo/hooks/post-commit",
                #       wrappermode => "04755",
-               #       # Enable mail notifications of commits.
-               #       notify => 1,
                #       # Log to syslog since svn post-commit hooks
                #       # hide output and errors.
                #       syslog => 1,
                #       # Log to syslog since svn post-commit hooks
                #       # hide output and errors.
                #       syslog => 1,
index d5a48f282320ddf8af6fca3fe9c80401746b6956..4cf38e9cbb2d00577528d118a917d44127634b4f 100644 (file)
@@ -405,6 +405,9 @@ I'm playing around with various ways that I can use subversion with ikiwiki.
 > away without running the post-commit wrapper on commit, and all you lose
 > is the ability to send commit notification emails.
 
 > away without running the post-commit wrapper on commit, and all you lose
 > is the ability to send commit notification emails.
 
+> (And now that [[recentchanges]] includes rss, you can just subscribe to
+> that, no need to worry about commit notification emails anymore.)
+
 * Is it possible / sensible to have ikiwiki share a subversion repository with other data (either completely unrelated files or another ikiwiki instance)?  This works in part but again the post-commit hook seems problematic.
 
 --[[AdamShand]]
 * Is it possible / sensible to have ikiwiki share a subversion repository with other data (either completely unrelated files or another ikiwiki instance)?  This works in part but again the post-commit hook seems problematic.
 
 --[[AdamShand]]
index d7938157109ccd3eb93ed35da55ca29506ba2908..1d3cd2bc4160c4818febf319d45a2be6c3b7d52b 100644 (file)
@@ -10,7 +10,6 @@ The module is available from the monotone source repository at:
 Monotone support works, but there are still a few minor missing bits (listed here so they are not forgotten):
 
 * At the moment there are no links to display diffs between revisions.  It shouldn't be hard to add links to a [ViewMTN](http://grahame.angrygoats.net/moinmoin/ViewMTN) instance, but it hasn't been done yet.
 Monotone support works, but there are still a few minor missing bits (listed here so they are not forgotten):
 
 * At the moment there are no links to display diffs between revisions.  It shouldn't be hard to add links to a [ViewMTN](http://grahame.angrygoats.net/moinmoin/ViewMTN) instance, but it hasn't been done yet.
-* The [[post-commit]] hook support, so that Ikiwiki sends change notifications when people commit using Monotone rather than the web interface, is partially implemented and untested.
 * Documentation (this page) could be improved.
 
 There is also a mismatch between the way Ikiwiki handles conflicts and the way Monotone handles conflicts.  At present, if there is a conflict, then Ikiwiki will commit a revision with conflict markers before presenting it to the user.  This is ugly, but there is no clean way to fix it at present.
 * Documentation (this page) could be improved.
 
 There is also a mismatch between the way Ikiwiki handles conflicts and the way Monotone handles conflicts.  At present, if there is a conflict, then Ikiwiki will commit a revision with conflict markers before presenting it to the user.  This is ugly, but there is no clean way to fix it at present.
index af1adc2358bec789b5405fadbd119badfad95958..9bf7f7c7b579918065c169254f0522cc71062fc7 100644 (file)
@@ -180,8 +180,7 @@ about using the git repositories.
 Once your wiki is checked in to the revision control system,
 you should configure ikiwiki to use revision control. Edit your
 ikiwiki.setup, and uncomment the lines for the revision control system
 Once your wiki is checked in to the revision control system,
 you should configure ikiwiki to use revision control. Edit your
 ikiwiki.setup, and uncomment the lines for the revision control system
-you chose to use. Be sure to set `svnrepo` to $REPOSITORY, if using
-subversion. Uncomment the block for the wrapper for your revision
+you chose to use. Uncomment the block for the wrapper for your revision
 control system, and configure the wrapper path in that block
 appropriately (for Git, it should be `$REPOSITORY/hooks/post-update`).
 
 control system, and configure the wrapper path in that block
 appropriately (for Git, it should be `$REPOSITORY/hooks/post-update`).
 
index 70970c6cc7f7f5ba5fa99eef167e53e918b2355c..dc456bbbfaf54b7b1c7234c8c82a6f259091be01 100644 (file)
@@ -3,4 +3,8 @@ user to add a page to their subscribed list while editing.  This would prove
 particularly useful for [[todo]] and [bug](bugs) items, to allow users to receive
 notifications for activity on their reports.
 
 particularly useful for [[todo]] and [bug](bugs) items, to allow users to receive
 notifications for activity on their reports.
 
---[[JoshTriplett]]
\ No newline at end of file
+--[[JoshTriplett]]
+
+I went and removed commit notification mails entirely, the idea is that you
+subscribe using the [[RecentChanges]] rss feed, and filter it on your end.
+Good enough? --[[Joey]]
index 9650b9da8cdccff2eb4f063d75e246c81366ea35..51ae081463e11711631524729c547d2f918f1736 100644 (file)
@@ -4,6 +4,8 @@ rcs_commit was only changed to work around bzr's lack of a switch to set the
 username). bzr_log could probably be written better by someone better at perl,
 and rcs_getctime and rcs_notify aren't written at all. --[[bma]]
 
 username). bzr_log could probably be written better by someone better at perl,
 and rcs_getctime and rcs_notify aren't written at all. --[[bma]]
 
+(rcs_notify is not needed in this branch --[[Joey]])
+
     #!/usr/bin/perl
     
     use warnings;
     #!/usr/bin/perl
     
     use warnings;
index e5de93521876cd2d69a093213ed9a26300402ceb..608c7d6815b147bd49169aa874a49bbde0ed7ce5 100644 (file)
@@ -1,6 +1,6 @@
 * Need to get post commit hook working (or an example of how to use it.)
   * See below. --[[bma]]
 * Need to get post commit hook working (or an example of how to use it.)
   * See below. --[[bma]]
-* rcs_notify is not implemented
+* rcs_notify is not implemented (not needed in this branch --[[Joey]])
 * Is the code sufficiently robust? It just warns when mercurial fails.
 * When rcs_commit is called with a $user that is an openid, it will be
   passed through to mercurial -u. Will mercurial choke on this?
 * Is the code sufficiently robust? It just warns when mercurial fails.
 * When rcs_commit is called with a $user that is an openid, it will be
   passed through to mercurial -u. Will mercurial choke on this?
index 136e969c2752d145b29491d80668141d858a566a..354e266f1d4c31a3c34c45ea7a8a13f9e3ceabbe 100644 (file)
@@ -133,11 +133,6 @@ configuration options of their own.
   access controlled by a group, it makes sense for the ikiwiki wrappers
   to run setgid to that group.
 
   access controlled by a group, it makes sense for the ikiwiki wrappers
   to run setgid to that group.
 
-* --notify, --no-notify
-
-  Enable email notification of commits. This should be used when running
-  ikiwiki as a [[post-commit]] hook.
-
 * --rcs=svn|git|.., --no-rcs
 
   Enable or disable use of a [[revision_control_system|rcs]].
 * --rcs=svn|git|.., --no-rcs
 
   Enable or disable use of a [[revision_control_system|rcs]].
@@ -151,11 +146,6 @@ configuration options of their own.
 
   No revision control is enabled by default.
 
 
   No revision control is enabled by default.
 
-* --svnrepo /svn/wiki
-
-  Specify the location of the svn repository for the wiki. This is required
-  for using --notify with [[Subversion|rcs/svn]].
-
 * --svnpath trunk
 
   Specify the path inside your svn repository where the wiki is located.
 * --svnpath trunk
 
   Specify the path inside your svn repository where the wiki is located.
index 8a579e183bb4e5e13af6ed2f3ad26dbab6ea0888..b8341b637685af41c087cc9c302912ceed1f4416 100644 (file)
@@ -11,9 +11,6 @@ located in /usr/share/ikiwiki/templates by default.
 * `misc.tmpl` - Generic template used for any page that doesn't
   have a custom template.
 * `editpage.tmpl` - Create/edit page.
 * `misc.tmpl` - Generic template used for any page that doesn't
   have a custom template.
 * `editpage.tmpl` - Create/edit page.
-* `notifymail.tmpl` - Not a html template, this is used to
-  generate change notification mails for users who have subscribed to
-  changes to a page.
 * `recentchanges.tmpl` - Used to generate a RecentChanges table with inline.
 * `change.tmpl` - Used to create a page describing a change made to the wiki.
 * `passwordmail.tmpl` - Not a html template, this is used to
 * `recentchanges.tmpl` - Used to generate a RecentChanges table with inline.
 * `change.tmpl` - Used to create a page describing a change made to the wiki.
 * `passwordmail.tmpl` - Not a html template, this is used to
index 0a6a86678e7591f4c3178cbe0e8c5e2236ac3148..5793d87bf7f3f53d6b9b3cb67cd6e97e0301b54f 100644 (file)
@@ -15,5 +15,10 @@ use IkiWiki::Setup::Standard {
        syslog => 0,
        userdir => "users",
        usedirs => 0,
        syslog => 0,
        userdir => "users",
        usedirs => 0,
-       add_plugins => [qw{goodstuff version haiku polygen fortune}],
+       rcs => 'git',
+       rss => 1,
+       cgiurl => "http://ikiwiki.info/ikiwiki.cgi",
+       url => "http://ikiwiki.info",
+       add_plugins => [qw{goodstuff version haiku polygen fortune
+               recentchanges }],
 }
 }
index 2aeaf94ecedc4ffd210d9c774dab983a58050f2d..9d1f6b52077b06e09f5bf7ec97b363c0c17941fb 100755 (executable)
@@ -36,12 +36,10 @@ sub getconfig () { #{{{
                        "cgi!" => \$config{cgi},
                        "discussion!" => \$config{discussion},
                        "w3mmode!" => \$config{w3mmode},
                        "cgi!" => \$config{cgi},
                        "discussion!" => \$config{discussion},
                        "w3mmode!" => \$config{w3mmode},
-                       "notify!" => \$config{notify},
                        "url=s" => \$config{url},
                        "cgiurl=s" => \$config{cgiurl},
                        "historyurl=s" => \$config{historyurl},
                        "diffurl=s" => \$config{diffurl},
                        "url=s" => \$config{url},
                        "cgiurl=s" => \$config{cgiurl},
                        "historyurl=s" => \$config{historyurl},
                        "diffurl=s" => \$config{diffurl},
-                       "svnrepo" => \$config{svnrepo},
                        "svnpath" => \$config{svnpath},
                        "adminemail=s" => \$config{adminemail},
                        "timeformat=s" => \$config{timeformat},
                        "svnpath" => \$config{svnpath},
                        "adminemail=s" => \$config{adminemail},
                        "timeformat=s" => \$config{timeformat},
@@ -132,10 +130,7 @@ sub main () { #{{{
                commandline_render();
        }
        elsif ($config{post_commit} && ! commit_hook_enabled()) {
                commandline_render();
        }
        elsif ($config{post_commit} && ! commit_hook_enabled()) {
-               if ($config{notify}) {
-                       loadindex();
-                       rcs_notify();
-               }
+               # do nothing
        }
        else {
                lockwiki();
        }
        else {
                lockwiki();
@@ -143,7 +138,6 @@ sub main () { #{{{
                require IkiWiki::Render;
                rcs_update();
                refresh();
                require IkiWiki::Render;
                rcs_update();
                refresh();
-               rcs_notify() if $config{notify};
                saveindex();
        }
 } #}}}
                saveindex();
        }
 } #}}}
diff --git a/t/svn.t b/t/svn.t
index a1878a73d86b3df6e3061b9a2739ee3ec766de46..8a8282c73340b8f8095204f24031a3a7a14534c0 100755 (executable)
--- a/t/svn.t
+++ b/t/svn.t
@@ -21,13 +21,14 @@ BEGIN { use_ok("IkiWiki"); }
 %config=IkiWiki::defaultconfig();
 $config{rcs} = "svn";
 $config{srcdir} = "$dir/src";
 %config=IkiWiki::defaultconfig();
 $config{rcs} = "svn";
 $config{srcdir} = "$dir/src";
-$config{svnrepo} = "$dir/repo";
 $config{svnpath} = "trunk";
 IkiWiki::checkconfig();
 
 $config{svnpath} = "trunk";
 IkiWiki::checkconfig();
 
-system "svnadmin create $config{svnrepo} >/dev/null";
-system "svn mkdir file://$config{svnrepo}/trunk -m add >/dev/null";
-system "svn co file://$config{svnrepo}/trunk $config{srcdir} >/dev/null";
+my $svnrepo = "$dir/repo";
+
+system "svnadmin create $svnrepo >/dev/null";
+system "svn mkdir file://$svnrepo/trunk -m add >/dev/null";
+system "svn co file://$svnrepo/trunk $config{srcdir} >/dev/null";
 
 # Web commit
 my $test1 = readfile("t/test1.mdwn");
 
 # Web commit
 my $test1 = readfile("t/test1.mdwn");
diff --git a/templates/notifymail.tmpl b/templates/notifymail.tmpl
deleted file mode 100644 (file)
index e3a1dd3..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-The following change was made by <TMPL_VAR USER>:
-
-<TMPL_VAR MESSAGE>
-<TMPL_VAR DIFF>