X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/c96f104ae98e3268784cb44458e8891e236b4d99..c4d33b212288918c9e1b4c4e56dc8ddd07bc4089:/mr?ds=sidebyside diff --git a/mr b/mr index b8d5835..be7d283 100755 --- a/mr +++ b/mr @@ -343,6 +343,11 @@ sub rcs_test { #{{{ print "mr $action: running rcs test >>$test<<\n" if $verbose; my $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"; + return undef; + } if (! length $rcs) { return undef; } @@ -383,11 +388,6 @@ sub action { #{{{ } $dir=~s/^(.*)\/[^\/]+\/?$/$1/; - - if (! -d $dir) { - print "mr $action: creating parent directory $dir\n" if $verbose; - system("mkdir", "-p", $dir); - } } elsif ($action =~ /update/) { if (! -d $dir) { @@ -396,7 +396,6 @@ sub action { #{{{ } $ENV{MR_REPO}=$dir; - my $skiptest=findcommand("skip", $dir, $topdir, $subdir); my $command=findcommand($action, $dir, $topdir, $subdir); @@ -420,7 +419,12 @@ sub action { #{{{ return SKIPPED; } } - + + if ($action eq 'checkout' && ! -d $dir) { + print "mr $action: creating parent directory $dir\n" if $verbose; + system("mkdir", "-p", $dir); + } + if (! $no_chdir && ! chdir($dir)) { print STDERR "mr $action: failed to chdir to $dir: $!\n"; return FAILED; @@ -1020,7 +1024,7 @@ sub expandaction { #{{{ } #}}} sub getopts { #{{{ - Getopt::Long::Configure("no_permute"); + Getopt::Long::Configure("bundling", "no_permute"); my $result=GetOptions( "d|directory=s" => sub { $directory=abs_path($_[1]) }, "c|config=s" => sub { $ENV{MR_CONFIG}=$_[1]; $config_overridden=1 },