use Getopt::Long;
use Cwd qw(chdir fastgetcwd);
use Errno qw(ENOENT);
+use File::Remove qw(remove);
+use Carp qw(confess cluck croak carp);
use constant ENTRIES =>"CVS/Entries";
use constant CVSIGNORE=>".cvsignore";
my $errstr=$!;
$msg.=" in \"".fastgetcwd."\" (CVS \"$dir_dirname\")".($opts{"noerrno"} ? "" : ": $errstr");
- die $msg if $opt_fatal;
- warn $msg;
+ croak $msg if $opt_fatal;
+ carp $msg;
}
sub fordirs
}
while (<E>) {
chomp;
+ next if /^D$/;
do { push @dir_dirs ,$1; next; } if m#^D/([^/]*)/#;
+ next if m#^/[^/]*/-#; # deleted file: /filename/-1.1/dummy timestamp//
+ next if m#^/[^/]*/0/#; # new file: /filename/0/dummy timestamp//
do { push @dir_files,$1; next; } if m#^/([^/]*)/# ;
- next if /^D$/;
mayfatal "File ".ENTRIES." contains invalid line \"$_\"",("noerrno"=>1);
}
close E;
{
my($filename)=@_;
- if (!unlink $filename) {
+ # '\1' for '-r':
+ if (!remove \1,$filename) {
mayfatal "File \"$_\" cannot be removed" if !$!{ENOENT};
}
}