]> git.madduck.net Git - code/myrepos.git/blobdiff - mr

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 for git-subtree
[code/myrepos.git] / mr
diff --git a/mr b/mr
index 3f04b5b95041eb9b4e8d24458c64cdb2b45d1a3d..6cac30c99bb8dfafa9badc7299d9064915be92c0 100755 (executable)
--- a/mr
+++ b/mr
@@ -22,6 +22,8 @@ B<mr> [options] diff
 
 B<mr> [options] log
 
+B<mr> [options] run command [param ...]
+
 B<mr> [options] bootstrap url [directory]
 
 B<mr> [options] register [repository]
@@ -102,6 +104,10 @@ Show a diff of uncommitted changes.
 
 Show the commit log.
 
+=item run command [param ...]
+
+Runs the specified command in each repository.
+
 =back
 
 These commands are also available:
@@ -216,7 +222,10 @@ Be verbose.
 
 =item --quiet
 
-Be quiet.
+Be quiet. This supresses mr's usual output. Any output from the
+commands that mr runs will still be displayed.
+
+For example, to see only uncommitted changes, use "mr -q status"
 
 =item -k
 
@@ -635,7 +644,7 @@ sub action {
 
                $command="set -e; ".$lib.
                        "my_action(){ $command\n }; my_action ".
-                       join(" ", map { s/\//\/\//g; s/"/\"/g; '"'.$_.'"' } @ARGV);
+                       join(" ", map { s/\\/\\\\/g; s/"/\"/g; '"'.$_.'"' } @ARGV);
                print "mr $action: running >>$command<<\n" if $verbose;
                my $ret=system($command);
                if ($ret != 0) {
@@ -1411,7 +1420,7 @@ sub register {
        $ENV{MR_REPO}=~s/.*\/(.*)/$1/;
        $command="set -e; ".$config{$directory}{DEFAULT}{lib}."\n".
                "my_action(){ $command\n }; my_action ".
-               join(" ", map { s/\//\/\//g; s/"/\"/g; '"'.$_.'"' } @ARGV);
+               join(" ", map { s/\\/\\\\/g; s/"/\"/g; '"'.$_.'"' } @ARGV);
        print "mr register: running >>$command<<\n" if $verbose;
        exec($command) || die "exec: $!";
 }
@@ -1688,6 +1697,8 @@ darcs_log = darcs changes "$@"
 git_bare_log = git log "$@"
 fossil_log = fossil timeline "$@"
 
+run = "$@"
+
 svn_register =
        url=`LC_ALL=C svn info . | grep -i '^URL:' | cut -d ' ' -f 2`
        if [ -z "$url" ]; then