X-Git-Url: https://scripts.mit.edu/gitweb/www/ikiwiki.git/blobdiff_plain/e0969bed6501f5ba93a65f6fbec8819b16225a9c..529c2da4c322c579682245cdccdcaafc3fd0b2d7:/doc/setup.mdwn diff --git a/doc/setup.mdwn b/doc/setup.mdwn index abd6ac7ad..13f8500c4 100644 --- a/doc/setup.mdwn +++ b/doc/setup.mdwn @@ -119,16 +119,44 @@ This tutorial will walk you through setting up a wiki with ikiwiki. [[toggle id=git text="Git"]] [[toggleable id=git text=""" - REPOSITORY=~/wikirepo - mkdir $REPOSITORY - cd $REPOSITORY - git init-db - cp -a $SRCDIR/* . - git add . - git commit -m "initial import" -a - mv $SRCDIR/.ikiwiki . - rm -rf $SRCDIR - git clone -l -s $REPOSITORY $SRCDIR + When using Git, you probably want to set up two repositories, of which + one should be bare (meaning that it does not have a working tree + checked out). We call the bare repository the "repository" and the + other will be the "srcdir" (which `ikiwiki` uses to compile the wiki). + There are [other + ways](http://blog.madduck.net/vcs/2007.07.11_publishing-git-repositories) + to do the following, but this might be easiest: + + REPOSITORY=~/wiki.git + cd $SRCDIR + git init + echo /.ikiwiki > .gitignore + git add . + git commit -m'Initial commit' + # if you expect $REPOSITORY to receive pushs from multiple + # clones, then it is advisable to only accept fast + # forwards -- this is to avoid overwriting the remote + # ref and losing commits from there. + git config receive.denyNonFastForwards true + git config core.bare true + mv .git $REPOSITORY + # we want to preserve the current .ikiwiki directory, + # so temporarily move it to a safe location + mv .ikiwiki ../ikiwiki.sv + cd .. + rm -r $SRCDIR + git clone -l -s $REPOSITORY $SRCDIR + mv ikiwiki.sv $SRCDIR/.ikiwiki + + It is **paramount** that you **never** push to the Git repository in + `$SRCDIR` ([this FAQ entry explains + why](http://git.or.cz/gitwiki/GitFaq#head-b6a3d85f677763313159eb39f7dbf4579d4ee28b)). + Instead, if you want to work on the wiki from a remote machine, clone + `$REPOSITORY`, using either the `git` transport (if available), or + `ssh`. + + If at any point you commit changes in `$SRCDIR`, make sure to `git + push` them to the `$REPOSITORY`. """]] [[toggle id=tla text="TLA"]] @@ -154,6 +182,32 @@ This tutorial will walk you through setting up a wiki with ikiwiki. hg commit -m "initial import" """]] + [[toggle id=monotone text="Monotone"]] + [[toggleable id=monotone text=""" + # These instructions are standard instructions to import a directory into monotone + # and set it up so that you don't need any passwords to use it + REPOSITORY=~/.ikiwiki/mtn.db + BRANCH=com.company.wikiname + # remember the password you use in the next step and + # substitute it for 'wikiKeyPass' in the get_passphrase() hook below + # note the you should never generate two monotone keys with the same name + mtn genkey web@machine.company.com + mtn db init --db=$REPOSITORY + mv $SRCDIR $SRCDIR-old + cd $SRCDIR-old + echo ".ikiwiki" > $SRCDIR-old/.mtn-ignore + mtn --db=$REPOSITORY --branch=$BRANCH import . -m "initial import" + cd .. + mtn --db=$REPOSITORY --branch=$BRANCH checkout $SRCDIR + mv $SRCDIR-old/.ikiwiki $SRCDIR + cat << EOF > $SRCDIR/_MTN/monotonerc + function get_passphrase (branchname) + return "wikiKeyPass" + end + EOF + rm -r $SRCDIR-old + """]] + 9. Configure ikiwiki to use revision control. Once your wiki is checked in to the revision control system, @@ -162,8 +216,8 @@ This tutorial will walk you through setting up a wiki with ikiwiki. you chose to use. Be sure to set `svnrepo` to $REPOSITORY, if using subversion. Uncomment the block for the wrapper for your revision control system, and configure the wrapper path in that block - appropriately. - + appropriately (for Git, it should be `$REPO/hooks/post-update`). + Once it's all set up, run `ikiwiki --setup ikiwiki.setup` once more. Now you should be able to edit files in $SRCDIR, and use your revision control system to commit them, and the wiki will automatically update.