[DEFAULT]
# Teach mr how to run svn cleanup.
cleanup = if [ -d "$MR_REPO"/.svn ]; then svn cleanup ; fi
-# And how to run git gc
+# And how to run git gc and push.
gc = if [ -d "$MR_REPO"/.git ]; then git gc; fi
+push = if [ -d "$MR_REPO"/.git ]; then git push; fi
+# And how to list tags for git and svn.
+tag =
+ if [ -d "$MR_REPO"/.svn ]; then
+ git tag
+ elsif [ -d "$MR_REPO"/.git ]; then
+ url=$(LANG=C svn info . | grep -i ^URL: | cut -d ' ' -f 2)
+ svn ls "$(echo '$url' | sed -e 's/trunk/tags/')"
+ else
+ error "unknown repo type"
+ fi
+# This hack is here because git-pull stupidly outputs tag info to stderr.
+# Shut it up but let real errors through, for use in cron.
+quietupdate = mr -s -n update 3>&1 1>/dev/null 2>&3 | egrep -v '(storing tag|tag: )' || true
# Tests used in the skips below.
# - wantsrc checks whether I probably want a full source checkout (quite
# large)
-# - wantmedia checks whethere I probably want various large media files
+# - wantmedia checks whether I probably want various large media files
# here.
# - private are hosts I trust private data to
# - mylaptop only succeeds if it's on my main development laptop, which
[mail]
checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/mail
skip = ! private
+
+# Example of how to remember to delete a repo, when one mrconfig file is
+# used on multiple systems. If you're feeling brave, use rm -rf $MR_REPO
+# instead. This approach can also be used for renames.
+[foo]
+update = error "$MR_REPO is no longer used and should be deleted"
+skip = ! test -d "$MR_REPO"