ikiwiki/debian
Joey Hess 2a7721febd Avoid %links accumulating duplicates. (For TOVA)
This is sorta an optimisation, and sorta a bug fix. In one
test case I have available, it can speed a page build up from 3
minutes to 3 seconds.

The root of the problem is that $links{$page} contains arrays of
links, rather than hashes of links. And when a link is found,
it is just pushed onto the array, without checking for dups.

Now, the array is emptied before scanning a page, so there
should not be a lot of opportunity for lots of duplicate links
to pile up in it. But, in some cases, they can, and if there
are hundreds of duplicate links in the array, then scanning it
for matching links, as match_link and some other code does,
becomes much more expensive than it needs to be.

Perhaps the real right fix would be to change the data structure
to a hash. But, the list of links is never accessed like that,
you always want to iterate through it.

I also looked at deduping the list in saveindex, but that does
a lot of unnecessary work, and doesn't completly solve the problem.

So, finally, I decided to add an add_link function that handles deduping,
and make ikiwiki-transition remove the old dup links.
2009-05-06 00:27:24 -04:00
..
.gitignore Add debian/.gitignore, with ignores for Debian build products 2008-01-26 22:28:44 -08:00
NEWS Avoid %links accumulating duplicates. (For TOVA) 2009-05-06 00:27:24 -04:00
README.Debian Remove trailing whitespace from README.Debian 2008-02-10 22:55:48 -08:00
changelog Avoid %links accumulating duplicates. (For TOVA) 2009-05-06 00:27:24 -04:00
compat update compat level 2009-02-16 21:54:30 -05:00
control turn python-support back on 2009-05-04 19:17:59 -04:00
copyright move comments to copyright and changelog 2009-04-04 17:49:04 -04:00
docs debhelper v7; rules file minimisation. 2009-02-15 20:12:16 -05:00
examples generate an example ikiwiki.setup as part of the build 2008-07-26 23:02:46 -04:00
link debhelper v7; rules file minimisation. 2009-02-15 20:12:16 -05:00
postinst editpage escaping fixes 2008-07-06 15:52:04 -04:00
preinst Add auto-blog.setup 2009-01-12 19:04:24 -05:00
rules turn python-support back on 2009-05-04 19:17:59 -04:00

README.Debian

It's a good idea, and in some cases a requirement, to rebuild your wikis
when upgrading to a new version of ikiwiki. If you have a lot of different
wikis on a system, this can be a pain to do by hand, and it's a good idea
to automate it anyway.

This Debian package of ikiwiki supports rebuilding wikis on upgrade. It
will run ikiwiki-mass-rebuild if necessary when upgraded. The file
/etc/ikiwiki/wikilist lists the setup files of wikis to rebuild, as well
as the user who owns the wiki. Edit this file and add any wikis you
set up.

You can also allow users to maintain their own list of wikis to rebuild,
by listing their usernames in /etc/ikiwiki/wikilist without corresponding
setup files.  ikiwiki will then read their lists of wikis from
.ikiwiki/wikilist in their home directories.


The examples directory contains the source to some example wiki setups.