monotone updates

- Try to configure a wrapper
- Fix (?) ikiwiki-makerepo repo name mangling
- Add big warning about passphrases
- Doc updates
master
Joey Hess 2008-08-22 00:22:02 -04:00
parent db73f81258
commit 4643233c18
4 changed files with 25 additions and 27 deletions

View File

@ -52,6 +52,9 @@ sub import (@) { #{{{
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
}

View File

@ -4,7 +4,7 @@ ikiwiki-makerepo - check an ikiwiki srcdir into revision control
# SYNOPSIS
ikiwiki-makerepo svn|git srcdir repository
ikiwiki-makerepo svn|git|monotone srcdir repository
ikiwiki-makerepo mercurial srcdir
@ -17,6 +17,9 @@ mercurial repository.
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>

View File

@ -181,28 +181,9 @@ about using the git repositories.
[[!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.

View File

@ -94,12 +94,12 @@ monotone)
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"
@ -109,6 +109,17 @@ monotone)
# 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