* Patch from Thomas Schwinge to switch from --svn to --rcs=svn, etc,

to pave the way for adding other RCS support. This also changes the
  setup files, where before they had svn => 1 or svn => 0, now they have
  rcs => "svn" or rcs => "".
* Add a debian/NEWS file with upgrade notes.
* Load whatever rcs module is specified, so new ones can be just dropped in
  as plugins and work.
* Add some basic docs about writing RCS modules.
master
joey 2006-05-02 18:44:39 +00:00
parent 47cec07e44
commit 12422e9890
11 changed files with 60 additions and 24 deletions

View File

@ -23,13 +23,14 @@ sub checkconfig () { #{{{
$config{wikistatedir}="$config{srcdir}/.ikiwiki"
unless exists $config{wikistatedir};
if ($config{svn}) {
require IkiWiki::Rcs::SVN;
$config{rcs}=1;
if ($config{rcs}) {
eval qq{require IkiWiki::Rcs::$config{rcs}};
if ($@) {
error("Failed to load RCS module IkiWiki::Rcs::$config{rcs}: $@");
}
}
else {
require IkiWiki::Rcs::Stub;
$config{rcs}=0;
}
foreach my $plugin (@{$config{plugin}}) {

View File

@ -36,7 +36,7 @@ sub gen_wrapper () { #{{{
asprintf(&newenviron[i++], "%s=%s", "$var", s);
EOF
}
if ($config{svn} && $config{notify}) {
if ($config{rcs} eq "svn" && $config{notify}) {
# Support running directly as hooks/post-commit by passing
# $2 in REV in the environment.
$envsave.=<<"EOF"

View File

@ -13,7 +13,7 @@ pure_install:: extra_install
extra_build:
./ikiwiki doc html --templatedir=templates --underlaydir=basewiki \
--wikiname="ikiwiki" --verbose --nosvn \
--wikiname="ikiwiki" --verbose --no-rcs \
--exclude=/discussion --plugin=brokenlinks \
--plugin=pagecount --plugin=orphans
./mdwn2man doc/usage.mdwn > ikiwiki.man

12
debian/NEWS vendored 100644
View File

@ -0,0 +1,12 @@
ikiwiki (1.1) unstable; urgency=low
The --svn and --no-svn switches are removed, instead you should use
--rcs=svn or --no-rcs. ikiwiki setup files that set svn => 1 should
be changed to set rcs => "svn"; if your setup file sets svn => 0
then change it to use rcs => "" to disable svn.
You will need to rebuild your wiki when upgrading to this version.
If you listed your wiki in /etc/ikiwiki/wikilist this will be done
automatically.
-- Joey Hess <joeyh@debian.org> Tue, 2 May 2006 14:13:59 -0400

10
debian/changelog vendored
View File

@ -28,8 +28,16 @@ ikiwiki (1.1) UNRELEASED; urgency=low
it, this will allow for adding a unit test suite.
* Add a unit test for globlist_match().
* Smart globlist merging.
* Patch from Thomas Schwinge to switch from --svn to --rcs=svn, etc,
to pave the way for adding other RCS support. This also changes the
setup files, where before they had svn => 1 or svn => 0, now they have
rcs => "svn" or rcs => "".
* Add a debian/NEWS file with upgrade notes.
* Load whatever rcs module is specified, so new ones can be just dropped in
as plugins and work.
* Add some basic docs about writing RCS modules.
-- Joey Hess <joeyh@debian.org> Tue, 2 May 2006 10:56:33 -0400
-- Joey Hess <joeyh@debian.org> Tue, 2 May 2006 14:13:59 -0400
ikiwiki (1.0) unstable; urgency=low

View File

@ -20,8 +20,8 @@ use IkiWiki::Setup::Standard {
#diffurl => "http://svn.someurl/trunk/[[file]]?root=wiki&r1=[[r1]]&r2=[[r2]]",
#templatedir => "/usr/share/ikiwiki/templates",
# Whether to integrate with svn.
svn => 1,
#rcs => "", # don't use svn
rcs => "svn", # use svn (the default)
svnrepo => "/svn/wiki",
svnpath => "trunk",

View File

@ -1,13 +1,14 @@
Plugins can be used to add additional features to ikiwiki. It's possible to
[[write]] your own plugins, or you can install and use plugins contributed by
others.
Plugins can be used to add additional features to ikiwiki. Ikiwiki's
backend RCS support is also pluggable, so support for new revision control
systems can be added to ikiwiki. It's possible to [[write]] your own plugins,
or you can install and use plugins contributed by others.
The ikiiki package includes some standard plugins that are installed and
by default. These include [[inline]], [[pagecount]], and [[brokenlinks]].
Of these, [[inline]] is enabled by default.
To enable other plugins, use the `--plugin` switch described in [[usage]], or the equivilant line in
[[ikiwiki.setup]].
To enable other plugins, use the `--plugin` switch described in [[usage]],
or the equivalent line in [[ikiwiki.setup]].
## Plugin directory
@ -23,4 +24,4 @@ for a list of the directories in that path. All plugins are in the
IkiWiki::Plugin namespace, so they go in a IkiWiki/Plugin subdirectory
inside the perl search path. For example, if your perl looks in
`/usr/local/lib/site_perl` for modules, you can locally install ikiwiki
plugins to `/usr/local/lib/site_perl/IkiWiki/Plugin`
plugins to `/usr/local/lib/site_perl/IkiWiki/Plugin`

View File

@ -71,3 +71,13 @@ use the following hashes, using a page name as the key:
Many plugins will need to add dependencies to this hash; the best way to do
it is by using the IkiWiki::add_depends function, which takes as its
parameters the page name and a [[GlobList]] of dependencies to add.
## RCS plugins
ikiwiki's support for revision control systems also uses pluggable perl
modules. These are in the `IkiWiki::RCS` namespace, for example
`IkiWiki::RCS::svn`.
Each RCS plugin must support all the IkiWiki::rcs_* functions.
See IkiWiki::RCS::Stub for the full list of functions. It's ok if
rcs_getctime does nothing except for throwing an error.

View File

@ -90,17 +90,18 @@ These options configure the wiki.
Enable email notification of commits. This should be used when running
ikiwiki as a [[Subversion]] [[post-commit]] hook.
* --svn, --nosvn
* --rcs=svn, --no-rcs
Enable or disable use of [[subversion]]. If subversion is enabled, the
`source` directory is assumed to be a working copy, and is automatically
updated before building the wiki.
Enable or disable use of a revision control system.
In [[CGI]] mode, with subversion enabled pages edited via the web will be
committed to subversion. Also, the [[RecentChanges]] link will be placed
If you use svn ([[Subversion]]), the `source` directory is assumed to be
a working copy, and is automatically updated before building the wiki.
In [[CGI]] mode, with a revision control system enabled pages edited via
the web will be committed. Also, the [[RecentChanges]] link will be placed
on pages.
Subversion is enabled by default.
svn is enabled by default.
* --svnrepo /svn/wiki

View File

@ -22,7 +22,7 @@ sub getconfig () { #{{{
wikiname => "wiki",
default_pageext => ".mdwn",
cgi => 0,
svn => 1,
rcs => 'svn',
notify => 0,
url => '',
cgiurl => '',
@ -58,7 +58,8 @@ sub getconfig () { #{{{
"refresh!" => \$config{refresh},
"getctime" => \$config{getctime},
"wrappermode=i" => \$config{wrappermode},
"svn!" => \$config{svn},
"rcs=s" => \$config{rcs},
"no-rcs" => sub { $config{rcs}="" },
"anonok!" => \$config{anonok},
"hyperestraier" => \$config{hyperestraier},
"rss!" => \$config{rss},
@ -71,6 +72,8 @@ sub getconfig () { #{{{
"diffurl=s" => \$config{diffurl},
"svnrepo" => \$config{svnrepo},
"svnpath" => \$config{svnpath},
"rcs=s" => \$config{rcs},
"no-rcs" => sub { $config{rcs}="" },
"adminemail=s" => \$config{adminemail},
"exclude=s@" => sub {
$config{wiki_file_prune_regexp}=qr/$config{wiki_file_prune_regexp}|$_[1]/;