monotone updates
authorJoey Hess <joey@kodama.kitenet.net>
Fri, 22 Aug 2008 04:22:02 +0000 (00:22 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Fri, 22 Aug 2008 04:22:02 +0000 (00:22 -0400)
- Try to configure a wrapper
- Fix (?) ikiwiki-makerepo repo name mangling
- Add big warning about passphrases
- Doc updates

IkiWiki/Setup/Automator.pm
doc/ikiwiki-makerepo.mdwn
doc/setup.mdwn
ikiwiki-makerepo

index a54b53817bfbbf726d26ce298fdc8b4eb2a4479f..72458376114e05a914b03ca9ec94155f90061c37 100644 (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
                }
index e76b3f3180918ab93142a165f6e29f25d96a91aa..dcebbb96ac8a42db3c1a3670681c43daf32d8db3 100644 (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>
index 647e8b86f8e9c49157a0095d13374651627a44b0..affc3ec167a26b9acb90c8e746edd3a32bd3bd28 100644 (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.
index aef3e4d0f7cd68dab8242958061ac27329f2db82..245043a5c9c0e217d467d30720d5a839fd02a6d5 100755 (executable)
@@ -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