elsif ($config{rcs} eq 'svn') {
$config{svn_wrapper}=$config{repository}."/hooks/post-commit";
}
+ elsif ($config{rcs} eq 'monotone') {
+ $config{mtn_wrapper}=$config{srcdir}."_MTN/ikiwiki-netsync-hook";
+ }
elsif ($config{rcs} eq 'bzr') {
# TODO
}
# SYNOPSIS
-ikiwiki-makerepo svn|git srcdir repository
+ikiwiki-makerepo svn|git|monotone srcdir repository
ikiwiki-makerepo mercurial srcdir
Note that for mercurial, the srcdir is converted into a mercurial
repository. There is no need to have a separate repository with mercurial.
+Note that for monotone, you are assumed to already have run "mtn genkey" to generate
+key.
+
# AUTHOR
Joey Hess <joey@ikiwiki.info>
[[!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@example.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
+ # This assumes that you have already used "mtn genkey you@hostname".
+ REPOSITORY=~/wiki.monotone
+ ikiwiki-makerepo git $SRCDIR $REPOSITORY
"""]]
## Configure ikiwiki to use revision control.
fi
repodir=$(dirname "$repository")
mkdir -p "$repodir"
- file_basename=$(basename -s .monotone "$repository" |\
+ file_basename=$(basename "$repository" | sed -e 's/\.monotone$//' |\
tr -s "[:space:]" "_" | sed 's/_$//g')
- reverse_hostname=$((hostname -f 2>/dev/null || hostname) |\
- tr "." "\n" | tail -r | tr "\n" ".")
+ reverse_hostname=$( (hostname -f 2>/dev/null || hostname) |\
+ tr "." "\n" | tac | tr "\n" ".")
branch_name="$reverse_hostname$file_basename"
- reponame_with_ext="$file_basename.mtn"
+ reponame_with_ext="$file_basename.monotone"
mtn db init -d "$repodir/$reponame_with_ext"
mtn setup -d "$repodir/$reponame_with_ext" -b "$branch_name" "$srcdir"
cd "$srcdir"
# with a default key floating around...
mtn ci -m "initial import"
echo "Directory $srcdir is now set up as a monotone repository"
+ echo ""
+ echo "Note: If your monotone key has a passphrase, you need to configure"
+ echo "monotone to automatically use it. Otherwise, web commits to ikiwiki"
+ echo "will fail."
+ echo ""
+ echo "You can create a $srcdir/_MTN/monotonerc"
+ echo "containing the passphrase:"
+ echo ""
+ echo "function get_passphrase (branchname)"
+ echo ' return "passphrasehere"'
+ echo "end"
;;
*)
echo "Unsupported revision control system $rcs" >&2