]> 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:

* Incorporate code from on Anthony Towns's mrs, to allow running
[code/myrepos.git] / mrconfig
index 38ccfbb7706289058b3415116283f3acca65e79d..e38bd40a60bb445c9246615204dffbf23fbd7280 100644 (file)
--- a/mrconfig
+++ b/mrconfig
@@ -3,32 +3,50 @@
 [DEFAULT]
 # Teach mr how to run svn cleanup.
 cleanup = if [ -d "$MR_REPO"/.svn ]; then svn cleanup ; fi
 [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
+# 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)
 # 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
 # - 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
-lib =                                                          \
-       wantsrc() {                                             \
-               test "$(whoami)" = joey                         \
-       }                                                       \
-       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                       \
+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
        }
 
 [src/mr]
        }
 
 [src/mr]
@@ -37,15 +55,16 @@ skip = ! wantsrc
 
 [src/linux-2.6]
 checkout = git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
 
 [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://git.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
@@ -53,8 +72,8 @@ skip = ! wantsrc
 
 [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
        cvs co -d www.debian.org webwml
 # cvs sucks sufficiently that I prefer to run these commands by hand,
 # and only rarely
@@ -62,22 +81,6 @@ update = echo "skipping cvs update (too slow)"
 status = echo "skipping cvs status (too ugly)"
 skip = ! mylaptop || ! wantsrc
 
 status = echo "skipping cvs status (too ugly)"
 skip = ! mylaptop || ! wantsrc
 
-[src/packages/uqm]
-checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/uqm
-skip = ! wantsrc
-
-[src/packages/uqm-content]
-checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/uqm-content
-skip = ! wantsrc
-
-[src/packages/uqm-voice]
-checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/uqm-voice
-skip = ! wantsrc
-
-[src/packages/uqm-music]
-checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/uqm-music
-skip = ! wantsrc
-
 # My home directory, which I keep in svn.
 []
 checkout = svn co svn+ssh://svn.kitenet.net/srv/svn/joey/trunk/home-$(hostname) joey
 # My home directory, which I keep in svn.
 []
 checkout = svn co svn+ssh://svn.kitenet.net/srv/svn/joey/trunk/home-$(hostname) joey
@@ -88,6 +91,9 @@ update = svn update && svnfix
 checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/mail
 skip = ! private
 
 checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/mail
 skip = ! private
 
-[doc]
-checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/doc
-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"