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.
since the repo isn't there yet. It was actually checking the repo type
of the parent directory, which caused several unexpected behaviors.
* Avoid creating parent directory for a checkout that will ultimately be
skipped.
* 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 <joeyh@debian.org> Sat, 03 Nov 2007 13:58:39 -0400
+ -- Joey Hess <joeyh@debian.org> Sat, 03 Nov 2007 14:04:47 -0400
mr (0.11) unstable; urgency=low
mr (0.11) unstable; urgency=low
} #}}}
sub findcommand { #{{{
} #}}}
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 (exists $config{$topdir}{$subdir}{$action}) {
return $config{$topdir}{$subdir}{$action};
}
+ if ($is_checkout) {
+ return undef;
+ }
+
my $rcs=rcs_test(@_);
if (defined $rcs &&
my $rcs=rcs_test(@_);
if (defined $rcs &&
$ENV{MR_CONFIG}=$configfiles{$topdir};
my $lib=exists $config{$topdir}{$subdir}{lib} ?
$config{$topdir}{$subdir}{lib}."\n" : "";
$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 (-d $dir) {
print "mr $action: $dir already exists, skipping checkout\n" if $verbose;
return SKIPPED;
if (-d $dir) {
print "mr $action: $dir already exists, skipping checkout\n" if $verbose;
return SKIPPED;
- 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.
if (defined $skiptest) {
my $test="set -e;".$lib.
- 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);
}
print "mr $action: creating parent directory $dir\n" if $verbose;
system("mkdir", "-p", $dir);
}
}
$ENV{MR_REPO}=getcwd();
}
$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";
}
if (! defined $command) {
die "mr register: unknown repository type\n";
}