# although slightly cut down.
[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 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
+# Teach mr to run a few git and svn specific commands.
+svn_cleanup = svn cleanup "$@"
+git_gc = git gc "$@"
+git_push = git push "$@"
+git_tag = git tag -l
+svn_tag = svn ls "$(LANG=C svn info . | grep -i ^URL: | cut -d ' ' -f 2 | sed -e 's/trunk/tags/')"
# 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
[src/linux-2.6]
checkout = git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
skip = ! mylaptop || ! wantsrc ||
- ([ "$1" = update ] && [ $(hours_since "$1") -lt 12 ])
+ ([ "$1" = update ] && ! hours_since "$1" 12)
[src/dpkg]
# A merge of the upstream dpkg git repo and my own personal branch.
checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/mail
skip = ! private
+# I don't keep my music in revision control, but mr can be taught to use
+# unison to synchronise it.
+[sound]
+checkout = unison -batch sound
+update = unison -batch sound
+commit = unison sound
+skip = ! wantmedia
+# Update this last of all.
+order = 100
+
# 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.