From: Joey Hess Date: Fri, 22 Aug 2008 04:22:02 +0000 (-0400) Subject: monotone updates X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/commitdiff_plain/4643233c180044bce1b588751a378ec361b43c54 monotone updates - Try to configure a wrapper - Fix (?) ikiwiki-makerepo repo name mangling - Add big warning about passphrases - Doc updates --- diff --git a/IkiWiki/Setup/Automator.pm b/IkiWiki/Setup/Automator.pm index a54b53817..724583761 100644 --- a/IkiWiki/Setup/Automator.pm +++ b/IkiWiki/Setup/Automator.pm @@ -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 } diff --git a/doc/ikiwiki-makerepo.mdwn b/doc/ikiwiki-makerepo.mdwn index e76b3f318..dcebbb96a 100644 --- a/doc/ikiwiki-makerepo.mdwn +++ b/doc/ikiwiki-makerepo.mdwn @@ -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 diff --git a/doc/setup.mdwn b/doc/setup.mdwn index 647e8b86f..affc3ec16 100644 --- a/doc/setup.mdwn +++ b/doc/setup.mdwn @@ -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. diff --git a/ikiwiki-makerepo b/ikiwiki-makerepo index aef3e4d0f..245043a5c 100755 --- a/ikiwiki-makerepo +++ b/ikiwiki-makerepo @@ -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