]>
git.madduck.net Git - code/myrepos.git/commitdiff
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:
summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
54b2aa6 )
=item skip
If the "skip" parameter is set and its command returns nonzero, then B<mr>
=item skip
If the "skip" parameter is set and its command returns nonzero, then B<mr>
-will skip acting on that repository.
+will skip acting on that repository. The command is passed the action
+name in $1.
+
+Here are two examples. The first skips the repo unless
+mr is run by joey. The second uses the hours_since function
+(included in mr's built-in library) to skip updating the repo unless it's
+been at least 12 hours since the last update.
+
+ skip = test $(whoami) != joey
+ skip = [ "$1" = update ] && [ $(hours_since "$1") -lt 12 ]
$ENV{MR_REPO}=$dir;
if (exists $config{$topdir}{$subdir}{skip}) {
$ENV{MR_REPO}=$dir;
if (exists $config{$topdir}{$subdir}{skip}) {
- my $test="set -e;".$lib.$config{$topdir}{$subdir}{skip};
+ my $test="set -e;".$lib.
+ "my_action(){ $config{$topdir}{$subdir}{skip}\n }; my_action '$action'";
print "mr $action: running skip test >>$test<<\n" if $verbose;
my $ret=system($test);
if ($ret >> 8 == 0) {
print "mr $action: running skip test >>$test<<\n" if $verbose;
my $ret=system($test);
if ($ret >> 8 == 0) {
-lib = \
- error() { \
- echo "mr: $@" >&2 \
- exit 1 \
+lib = \
+ error() { \
+ echo "mr: $@" >&2 \
+ exit 1 \
+ } \
+ hours_since() { \
+ for dir in .git .svn .bzr CVS; do \
+ if [ -e "$MR_REPO/$dir" ]; then \
+ flagfile="$MR_REPO/$dir/.mr_last$1" \
+ break \
+ fi \
+ done \
+ if [ -z "$flagfile" ]; then \
+ error "cannot determine flag filename" \
+ fi \
+ perl -wle 'print -f shift() ? int((-M _) * 24) : 9999' "$flagfile" \
+ touch "$flagfile" \
-update = \
- if [ -d "$MR_REPO"/.svn ]; then \
- svn update "$@" \
- elif [ -d "$MR_REPO"/.git ]; then \
- git pull origin master "$@" \
- elif [ -d "$MR_REPO"/.bzr ]; then \
- bzr merge "$@" \
- elif [ -d "$MR_REPO"/CVS ]; then \
- cvs update "$@" \
- else \
- error "unknown repo type" \
+update = \
+ if [ -d "$MR_REPO"/.svn ]; then \
+ svn update "$@" \
+ elif [ -d "$MR_REPO"/.git ]; then \
+ git pull origin master "$@" \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr merge "$@" \
+ elif [ -d "$MR_REPO"/CVS ]; then \
+ cvs update "$@" \
+ else \
+ error "unknown repo type" \
-status = \
- if [ -d "$MR_REPO"/.svn ]; then \
- svn status "$@" \
- elif [ -d "$MR_REPO"/.git ]; then \
- git status "$@" || true \
- elif [ -d "$MR_REPO"/.bzr ]; then \
- bzr status "$@" \
- elif [ -d "$MR_REPO"/CVS ]; then \
- cvs status "$@" \
- else \
- error "unknown repo type" \
+status = \
+ if [ -d "$MR_REPO"/.svn ]; then \
+ svn status "$@" \
+ elif [ -d "$MR_REPO"/.git ]; then \
+ git status "$@" || true \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr status "$@" \
+ elif [ -d "$MR_REPO"/CVS ]; then \
+ cvs status "$@" \
+ else \
+ error "unknown repo type" \
-commit = \
- if [ -d "$MR_REPO"/.svn ]; then \
- svn commit "$@" \
- elif [ -d "$MR_REPO"/.git ]; then \
- git commit -a "$@" && git push --all \
- elif [ -d "$MR_REPO"/.bzr ]; then \
- bzr commit "$@" && bzr push \
- elif [ -d "$MR_REPO"/CVS ]; then \
- cvs commit "$@" \
- else \
- error "unknown repo type" \
+commit = \
+ if [ -d "$MR_REPO"/.svn ]; then \
+ svn commit "$@" \
+ elif [ -d "$MR_REPO"/.git ]; then \
+ git commit -a "$@" && git push --all \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr commit "$@" && bzr push \
+ elif [ -d "$MR_REPO"/CVS ]; then \
+ cvs commit "$@" \
+ else \
+ error "unknown repo type" \
-diff = \
- if [ -d "$MR_REPO"/.svn ]; then \
- svn diff "$@" \
- elif [ -d "$MR_REPO"/.git ]; then \
- git diff "$@" \
- elif [ -d "$MR_REPO"/.bzr ]; then \
- bzr diff "$@" \
- elif [ -d "$MR_REPO"/CVS ]; then \
- cvs diff "$@" \
- else \
- error "unknown repo type" \
+diff = \
+ if [ -d "$MR_REPO"/.svn ]; then \
+ svn diff "$@" \
+ elif [ -d "$MR_REPO"/.git ]; then \
+ git diff "$@" \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr diff "$@" \
+ elif [ -d "$MR_REPO"/CVS ]; then \
+ cvs diff "$@" \
+ else \
+ error "unknown repo type" \
-log = \
- if [ -d "$MR_REPO"/.svn ]; then \
- svn log"$@" \
- elif [ -d "$MR_REPO"/.git ]; then \
- git log "$@" \
- elif [ -d "$MR_REPO"/.bzr ]; then \
- bzr log "$@" \
- elif [ -d "$MR_REPO"/CVS ]; then \
- cvs log "$@" \
- else \
- error "unknown repo type" \
+log = \
+ if [ -d "$MR_REPO"/.svn ]; then \
+ svn log"$@" \
+ elif [ -d "$MR_REPO"/.git ]; then \
+ git log "$@" \
+ elif [ -d "$MR_REPO"/.bzr ]; then \
+ bzr log "$@" \
+ elif [ -d "$MR_REPO"/CVS ]; then \
+ cvs log "$@" \
+ else \
+ error "unknown repo type" \
fi
register = \
if [ -n "$1" ]; then \
fi
register = \
if [ -n "$1" ]; then \
-help = \
- if [ ! -e "$MR_PATH" ]; then \
- error "cannot find program path" \
- fi \
- (pod2man -c mr "$MR_PATH" | man -l -) || \
+help = \
+ if [ ! -e "$MR_PATH" ]; then \
+ error "cannot find program path" \
+ fi \
+ (pod2man -c mr "$MR_PATH" | man -l -) || \
error "pod2man or man failed"
ed = echo "A horse is a horse, of course, of course.."
error "pod2man or man failed"
ed = echo "A horse is a horse, of course, of course.."
# - 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 \
- } \
- 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 \
+ } \
+ 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]
checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/mr
[src/mr]
checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/mr
[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.
[doc]
checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/doc
skip = ! private
[doc]
checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/doc
skip = ! private
+
+[lib/text]
+checkout = git clone ssh://git.kitenet.net/srv/git/kitenet.net/joey/private/text
+skip = ! wantmedia