]>
git.madduck.net Git - code/myrepos.git/blobdiff - mrconfig
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
# An example config file for the mr(1) command.
[DEFAULT]
# An example config file for the mr(1) command.
[DEFAULT]
+# 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 -n update 3>&1 1>/dev/null 2>&3 | egrep -v '(storing tag|tag: )'
# Teach mr how to run svn cleanup.
cleanup = if [ -d "$MR_REPO"/.svn ]; then svn cleanup ; fi
# 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
# Tests used in the skips below.
# - wantsrc checks whether I probably want a full source checkout (quite
# large)
# Tests used in the skips below.
# - wantsrc checks whether I probably want a full source checkout (quite
# large)
+# - 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
# gets lots of extra cruft
# - kite only succeeds on kite
# - mylaptop only succeeds if it's on my main development laptop, which
# gets lots of extra cruft
# - kite only succeeds on kite
-lib = \
- wantsrc() { \
- test "$(whoami)" = joey; \
- }; \
- mylaptop() { \
- test "$(hostname)" = kodama; \
- }; \
- kite() { \
- test "$(hostname)" = wren; \
+lib =
+ wantsrc() {
+ test "$(whoami)" = joey
+ }
+ wantmedia() {
+ if [ "$(whoami)" = joey ]; then
+ case "$(hostname)" in
+ kodama|dragon|dodo)
+ return 0
+ ;;
+ esac
+ fi
+ return 1
+ }
+ private() {
+ if [ "$(whoami)" = joey ]; then
+ case "$(hostname)" in
+ wren|kodama|dragon|dodo|bluebird)
+ return 0
+ ;;
+ esac
+ fi
+ return 1
+ }
+ mylaptop() {
+ test "$(hostname)" = kodama
+ }
+ kite() {
+ test "$(hostname)" = wren
-checkout = git clone ssh://kitenet.net/srv/git/kitenet.net/mr
+checkout = git clone ssh://git. kitenet.net/srv/git/kitenet.net/mr
skip = ! wantsrc
[src/linux-2.6]
checkout = git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
skip = ! wantsrc
[src/linux-2.6]
checkout = git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
-skip = ! mylaptop || ! wantsrc
+skip = ! mylaptop || ! wantsrc ||
+ ([ "$1" = update ] && [ $(hours_since "$1") -lt 12 ])
[src/dpkg]
# A merge of the upstream dpkg git repo and my own personal branch.
[src/dpkg]
# A merge of the upstream dpkg git repo and my own personal branch.
-checkout = \
- git clone git://git.debian.org/git/dpkg/dpkg.git && \
- cd dpkg && \
- git remote add kite ssh://kitenet.net/srv/git/kitenet.net/dpkg && \
- git fetch kite && \
+checkout =
+ git clone git://git.debian.org/git/dpkg/dpkg.git &&
+ cd dpkg &&
+ git remote add kite ssh://git.kitenet.net/srv/git/kitenet.net/dpkg &&
+ git fetch kite &&
git checkout -b sourcev3 kite/sourcev3
update = git pull origin master && git pull kite sourcev3
commit = git push kite
git checkout -b sourcev3 kite/sourcev3
update = git pull origin master && git pull kite sourcev3
commit = git push kite
[html/www.debian.org]
# Still in CVS..urk!
[html/www.debian.org]
# Still in CVS..urk!
-checkout = \
- CVSROOT=:ext:joeyh@cvs.debian.org:/cvs/webwml \
+checkout =
+ CVSROOT=:ext:joeyh@cvs.debian.org:/cvs/webwml
cvs co -d www.debian.org webwml
# cvs sucks sufficiently that I prefer to run these commands by hand,
# and only rarely
update = echo "skipping cvs update (too slow)"
status = echo "skipping cvs status (too ugly)"
cvs co -d www.debian.org webwml
# cvs sucks sufficiently that I prefer to run these commands by hand,
# and only rarely
update = echo "skipping cvs update (too slow)"
status = echo "skipping cvs status (too ugly)"
+skip = ! mylaptop || ! wantsrc
# My home directory, which I keep in svn.
[]
checkout = svn co svn+ssh://svn.kitenet.net/srv/svn/joey/trunk/home-$(hostname) joey
# run svnfix after each update
update = svn update && svnfix
# My home directory, which I keep in svn.
[]
checkout = svn co svn+ssh://svn.kitenet.net/srv/svn/joey/trunk/home-$(hostname) joey
# run svnfix after each update
update = svn update && svnfix
+
+[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"