From: Joey Hess Date: Sat, 3 Nov 2007 18:06:43 +0000 (-0400) Subject: * Don't try to test the repo type when doing a checkout, that can't work X-Git-Url: https://git.madduck.net/code/myrepos.git/commitdiff_plain/397a70209cc535de92f9565c9da25051e065e3e0 * Don't try to test the repo type when doing a checkout, that can't work since the repo isn't there yet. It was actually checking the repo type of the parent directory, which caused several unexpected behaviors. --- diff --git a/debian/changelog b/debian/changelog index 09aef68..f84346e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,8 +2,11 @@ mr (0.12) UNRELEASED; urgency=low * Avoid creating parent directory for a checkout that will ultimately be skipped. + * Don't try to test the repo type when doing a checkout, that can't work + since the repo isn't there yet. It was actually checking the repo type + of the parent directory, which caused several unexpected behaviors. - -- Joey Hess Sat, 03 Nov 2007 13:58:39 -0400 + -- Joey Hess Sat, 03 Nov 2007 14:04:47 -0400 mr (0.11) unstable; urgency=low diff --git a/mr b/mr index be7d283..29001e0 100755 --- a/mr +++ b/mr @@ -357,12 +357,16 @@ sub rcs_test { #{{{ } #}}} sub findcommand { #{{{ - my ($action, $dir, $topdir, $subdir) = @_; + my ($action, $dir, $topdir, $subdir, $is_checkout) = @_; if (exists $config{$topdir}{$subdir}{$action}) { return $config{$topdir}{$subdir}{$action}; } + if ($is_checkout) { + return undef; + } + my $rcs=rcs_test(@_); if (defined $rcs && @@ -380,8 +384,9 @@ sub action { #{{{ $ENV{MR_CONFIG}=$configfiles{$topdir}; my $lib=exists $config{$topdir}{$subdir}{lib} ? $config{$topdir}{$subdir}{lib}."\n" : ""; + my $is_checkout=($action eq 'checkout'); - if ($action eq 'checkout') { + if ($is_checkout) { if (-d $dir) { print "mr $action: $dir already exists, skipping checkout\n" if $verbose; return SKIPPED; @@ -396,8 +401,9 @@ sub action { #{{{ } $ENV{MR_REPO}=$dir; - my $skiptest=findcommand("skip", $dir, $topdir, $subdir); - my $command=findcommand($action, $dir, $topdir, $subdir); + + my $skiptest=findcommand("skip", $dir, $topdir, $subdir, $is_checkout); + my $command=findcommand($action, $dir, $topdir, $subdir, $is_checkout); if (defined $skiptest) { my $test="set -e;".$lib. @@ -420,7 +426,7 @@ sub action { #{{{ } } - if ($action eq 'checkout' && ! -d $dir) { + if ($is_checkout && ! -d $dir) { print "mr $action: creating parent directory $dir\n" if $verbose; system("mkdir", "-p", $dir); } @@ -986,7 +992,7 @@ sub register { #{{{ } $ENV{MR_REPO}=getcwd(); - my $command=findcommand("register", $ENV{MR_REPO}, $directory, 'DEFAULT'); + my $command=findcommand("register", $ENV{MR_REPO}, $directory, 'DEFAULT', 0); if (! defined $command) { die "mr register: unknown repository type\n"; }