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

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