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') { elsif ($config{rcs} eq 'svn') {
$config{svn_wrapper}=$config{repository}."/hooks/post-commit"; $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') { elsif ($config{rcs} eq 'bzr') {
# TODO # TODO
} }

View File

@ -4,7 +4,7 @@ ikiwiki-makerepo - check an ikiwiki srcdir into revision control
# SYNOPSIS # SYNOPSIS
ikiwiki-makerepo svn|git srcdir repository ikiwiki-makerepo svn|git|monotone srcdir repository
ikiwiki-makerepo mercurial srcdir ikiwiki-makerepo mercurial srcdir
@ -17,6 +17,9 @@ mercurial repository.
Note that for mercurial, the srcdir is converted into a mercurial Note that for mercurial, the srcdir is converted into a mercurial
repository. There is no need to have a separate repository with 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 # AUTHOR
Joey Hess <joey@ikiwiki.info> Joey Hess <joey@ikiwiki.info>

View File

@ -181,28 +181,9 @@ about using the git repositories.
[[!toggle id=monotone text="Monotone"]] [[!toggle id=monotone text="Monotone"]]
[[!toggleable id=monotone text=""" [[!toggleable id=monotone text="""
# These instructions are standard instructions to import a directory into monotone # This assumes that you have already used "mtn genkey you@hostname".
# and set it up so that you don't need any passwords to use it REPOSITORY=~/wiki.monotone
REPOSITORY=~/.ikiwiki/mtn.db ikiwiki-makerepo git $SRCDIR $REPOSITORY
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
"""]] """]]
## Configure ikiwiki to use revision control. ## Configure ikiwiki to use revision control.

View File

@ -94,12 +94,12 @@ monotone)
fi fi
repodir=$(dirname "$repository") repodir=$(dirname "$repository")
mkdir -p "$repodir" mkdir -p "$repodir"
file_basename=$(basename -s .monotone "$repository" |\ file_basename=$(basename "$repository" | sed -e 's/\.monotone$//' |\
tr -s "[:space:]" "_" | sed 's/_$//g') tr -s "[:space:]" "_" | sed 's/_$//g')
reverse_hostname=$((hostname -f 2>/dev/null || hostname) |\ reverse_hostname=$( (hostname -f 2>/dev/null || hostname) |\
tr "." "\n" | tail -r | tr "\n" ".") tr "." "\n" | tac | tr "\n" ".")
branch_name="$reverse_hostname$file_basename" 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 db init -d "$repodir/$reponame_with_ext"
mtn setup -d "$repodir/$reponame_with_ext" -b "$branch_name" "$srcdir" mtn setup -d "$repodir/$reponame_with_ext" -b "$branch_name" "$srcdir"
cd "$srcdir" cd "$srcdir"
@ -109,6 +109,17 @@ monotone)
# with a default key floating around... # with a default key floating around...
mtn ci -m "initial import" mtn ci -m "initial import"
echo "Directory $srcdir is now set up as a monotone repository" 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 echo "Unsupported revision control system $rcs" >&2