Subversion
(:Summary: PmWiki group header. Includes styles and trail.:)
(:Summary:Easily install / upgrade using an "export" from the version control system:)
Obtaining PmWiki via Subversion (svn)
Another way to obtain copies of PmWiki is via subversion. First, you need a subversion client of some sort to be able to access the repository. We'll assume a command-line "svn" client here.
The latest release of PmWiki is available from svn://pmwiki.org/pmwiki/tags/latest. To use subversion to obtain a copy of the latest release, use a command like:
This will obtain the latest release and place it into a "pmwiki" directory in your current directory. When a new release comes out and you wish to update to the latest release, simply repeat the command above. This will update your installation of pmwiki with the latest release.
If you want the absolutely latest version that has been checked into the repository (which may contain unreleased features), you can use "svn export svn://pmwiki.org/pmwiki/trunk pmwiki --force" instead.
Specific versions of PmWiki are also available in the tags/ directory. So, if you update to the latest version and find that you need to revert to a previous version, you can do
to make your current copy be updated to be the same as the 2.1.26 release. To get back to the latest release, just use the .../tags/latest version mentioned above.
If you are not sure what releases are available in the tags/ directory you can list them using the "svn ls" command as follows:
Export vs Checkout
Alternatively you can use svn checkout instead of svn export. Some advantages to this include:
- incremental updates - you only download what's changed since last revision
- merging of changes - if you have modified one of the core files--although you shouldn't--svn will try to merge your changes with the latest version
- easy patch creation - if you find a bug and fix it you can use
svn diff filename.ext
to generate a patch file that can be submitted for next release.
The downside to using checkout is the wiki takes up twice the amount of disk space and you have hidden ".svn" subfolders which you need to make sure your webserver doesn't server to users. Apache web server will typically have a rule that blocks ".anything" so it shouldn't be an issue for most people.
Automating it
If you want a fully-automated and hassle-free upgrade/backup process, you could add the following shell script to your crontab:
echo Making backup of PmWiki...
cp -r pmwiki pmwiki.bak; # Make backup, overwriting old one.
echo Downloading latest version...
svn export svn://pmwiki.org/pmwiki/tags/latest pmwiki --force
(Save it as pmwiki-upgrade.sh
or whatever.)
The backup creation step could be elaborated upon somewhat, to give incremental backups for example, or at least a timestamp.