X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/f096cfec16f6b36046862cdf84c88a426948a6dc..21e166fb07013bc42520052d35042651c656cd7f:/mr diff --git a/mr b/mr index f2e4af5..577fa85 100755 --- a/mr +++ b/mr @@ -175,6 +175,7 @@ loadconfig($config); #use Data::Dumper; #print Dumper(\%config); +# alias expansion and command stemming my $action=shift @ARGV; if (! exists $knownactions{$action}) { if (exists $alias{$action}) { @@ -192,6 +193,15 @@ if (! exists $knownactions{$action}) { } } +# handle being in a subdir of a repository +foreach my $topdir (sort keys %config) { + foreach my $subdir (sort keys %{$config{$topdir}}) { + if ($directory =~ /^\Q$topdir$subdir\E\//) { + $directory=$topdir.$subdir; + } + } +} + my (@failed, @successful, @skipped); my $first=1; foreach my $topdir (sort keys %config) { @@ -203,8 +213,6 @@ foreach my $topdir (sort keys %config) { if (defined $directory && $dir ne $directory && $dir !~ /^\Q$directory\E\//) { - print "mr $action: $dir skipped per -d parameter ($directory)\n" if $verbose; - push @skipped, $dir; next; } @@ -405,17 +413,17 @@ lib = \ } update = \ if [ -d .svn ]; then \ - svn update; \ + svn update "$@"; \ elif [ -d .git ]; then \ - git pull origin master; \ + git pull origin master "$@"; \ else \ error "unknown repo type"; \ fi status = \ if [ -d .svn ]; then \ - svn status; \ + svn status "$@"; \ elif [ -d .git ]; then \ - git status || true; \ + git status "$@" || true; \ else \ error "unknown repo type"; \ fi