X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/4f4322be5574dcbb4f9e975b35300b34dd232368..03307549be2f8d1152e216550712c9d49569e553:/mr diff --git a/mr b/mr index e73f3c8..5a877fe 100755 --- a/mr +++ b/mr @@ -16,6 +16,8 @@ B [options] commit [-m "message"] B [options] record [-m "message"] +B [options] push + B [options] diff B [options] log @@ -425,6 +427,10 @@ mr can be extended to support things such as unison and git-svn. Some files providing such extensions are available in /usr/share/mr/. See the documentation in the files for details about using them. +=head1 EXIT STATUS + +mr returns nonzero if a command failed in any of the repositories. + =head1 AUTHOR Copyright 2007-2010 Joey Hess @@ -498,7 +504,7 @@ sub rcs_test { chomp $rcs; if ($rcs=~/\n/s) { $rcs=~s/\n/, /g; - print STDERR "mr $action: found multiple possible repository types ($rcs) for $topdir$subdir\n"; + print STDERR "mr $action: found multiple possible repository types ($rcs) for ".fulldir($topdir, $subdir)."\n"; return undef; } if (! length $rcs) { @@ -531,9 +537,15 @@ sub findcommand { } } +sub fulldir { + my ($topdir, $subdir) = @_; + return $subdir =~ /^\// ? $subdir : $topdir.$subdir; +} + sub action { my ($action, $dir, $topdir, $subdir, $force_checkout) = @_; - + my $fulldir=fulldir($topdir, $subdir); + $ENV{MR_CONFIG}=$configfiles{$topdir}; my $lib=exists $config{$topdir}{$subdir}{lib} ? $config{$topdir}{$subdir}{lib}."\n" : ""; @@ -594,22 +606,22 @@ sub action { elsif (! defined $command) { my $rcs=rcs_test(@_); if (! defined $rcs) { - print STDERR "mr $action: unknown repository type and no defined $action command for $topdir$subdir\n"; + print STDERR "mr $action: unknown repository type and no defined $action command for $fulldir\n"; return FAILED; } else { - print STDERR "mr $action: no defined action for $rcs repository $topdir$subdir, skipping\n"; + print STDERR "mr $action: no defined action for $rcs repository $fulldir, skipping\n"; return SKIPPED; } } else { if (! $no_chdir) { - print "mr $action: $topdir$subdir\n" unless $quiet; + print "mr $action: $fulldir\n" unless $quiet; } else { my $s=$directory; - $s=~s/^\Q$topdir$subdir\E\/?//; - print "mr $action: $topdir$subdir (in subdir $s)\n" unless $quiet; + $s=~s/^\Q$fulldir\E\/?//; + print "mr $action: $fulldir (in subdir $s)\n" unless $quiet; } my $hookret=hook("pre_$action", $topdir, $subdir); @@ -1540,9 +1552,6 @@ sub exitstats { if (@failed) { exit 1; } - elsif (! @ok && @skipped) { - exit 1; - } else { exit 0; }