]> git.madduck.net Git - code/myrepos.git/blob - mrconfig.complex

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:

fd88893c132cfd4c4885a1bb35342322e52b3c80
[code/myrepos.git] / mrconfig.complex
1 # An example config file for the mr(1) command.
2 #
3 # This is fairly close to the config file used by the author
4 # although slightly cut down.
5
6 [DEFAULT]
7 # Teach mr to run a few git and svn specific commands.
8 svn_cleanup = svn cleanup "$@"
9 git_gc = git gc "$@"
10 git_push = git push "$@"
11 git_tag = git tag -l
12 svn_tag = svn ls "$(LANG=C svn info . | grep -i ^URL: | cut -d ' ' -f 2 | sed -e 's/trunk/tags/')"
13 # This hack is here because git-pull stupidly outputs tag info to stderr.
14 # Shut it up but let real errors through, for use in cron.
15 quietupdate = mr -s -n update 3>&1 1>/dev/null 2>&3 | egrep -v '(storing tag|tag: )' || true
16 # Tests used in the skips below.
17 # - wantsrc checks whether I probably want a full source checkout (quite
18 #   large)
19 # - wantmedia checks whether I probably want various large media files
20 #   here.
21 # - private are hosts I trust private data to
22 # - mylaptop only succeeds if it's on my main development laptop, which 
23 #   gets lots of extra cruft
24 # - kite only succeeds on kite
25 lib =
26         wantsrc() {
27                 test "$(whoami)" = joey
28         }
29         wantmedia() {
30                 if [ "$(whoami)" = joey ]; then
31                         case "$(hostname)" in
32                                 kodama|dragon|dodo)
33                                         return 0
34                         ;;
35                         esac
36                 fi
37                 return 1
38         }
39         private() {
40                 if [ "$(whoami)" = joey ]; then
41                         case "$(hostname)" in
42                         wren|kodama|dragon|dodo|bluebird)
43                                 return 0
44                         ;;
45                         esac
46                 fi
47                 return 1
48         }
49         mylaptop() {
50                 test "$(hostname)" = kodama
51         }
52         kite() {
53                 test "$(hostname)" = wren
54         }
55
56 [src/mr]
57 checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/mr
58 skip = ! wantsrc
59
60 [src/linux-2.6]
61 checkout = git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
62 skip = ! mylaptop || ! wantsrc ||
63         ([ "$1" = update ] && ! hours_since "$1" 12)
64
65 [src/dpkg]
66 # A merge of the upstream dpkg git repo and my own personal branch.
67 checkout =
68         git clone git://git.debian.org/git/dpkg/dpkg.git &&
69         cd dpkg &&
70         git remote add kite ssh://git.kitenet.net/srv/git/kitenet.net/dpkg &&
71         git fetch kite &&
72         git checkout -b sourcev3 kite/sourcev3
73 update = git pull origin master && git pull kite sourcev3
74 commit = git push kite
75 skip = ! wantsrc
76
77 [html/www.debian.org]
78 # Still in CVS..urk!
79 checkout =
80         CVSROOT=:ext:joeyh@cvs.debian.org:/cvs/webwml
81         cvs co -d www.debian.org webwml
82 # cvs sucks sufficiently that I prefer to run these commands by hand,
83 # and only rarely
84 update = echo "skipping cvs update (too slow)"
85 status = echo "skipping cvs status (too ugly)"
86 skip = ! mylaptop || ! wantsrc
87
88 # My home directory, which I keep in svn.
89 []
90 checkout = svn co svn+ssh://svn.kitenet.net/srv/svn/joey/trunk/home-$(hostname) joey
91 # run svnfix after each update
92 update = svn update && svnfix
93
94 [mail]
95 checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/mail
96 skip = ! private
97
98 # I don't keep my music in revision control, but mr can be taught to use
99 # unison to synchronise it.
100 [sound]
101 checkout = unison -batch sound
102 update = unison -batch sound
103 commit = unison sound
104 skip = ! wantmedia
105 # Update this last of all.
106 order = 100
107
108 # Example of how to remember to delete a repo, when one mrconfig file is
109 # used on multiple systems. If you're feeling brave, use rm -rf $MR_REPO
110 # instead. This approach can also be used for renames.
111 [foo]
112 update = error "$MR_REPO is no longer used and should be deleted"
113 skip = ! test -d "$MR_REPO"