+print $break, "\nChecking out the latest rsync into $releasedir ...\n";
+
+mkdir($releasedir, 0755) or die $! unless -d $releasedir;
+chdir($releasedir) or die $!;
+
+system 'rm -rf rsync';
+
+my(%dirs, @files);
+open(CVS, '-|', 'cvs checkout -P rsync') or die $!;
+while (<CVS>) {
+ print $_;
+ next if /\.(cvs)?ignore$/;
+ if (m#^[UP] rsync/(.*)#) {
+ my $fn = $1;
+ my($dir) = $fn =~ m#^(.+)/#;
+ push(@files, $dir) if defined($dir) && !$dirs{$1}++;
+ push(@files, $fn);
+ }
+}
+
+chdir('rsync') or die $!;
+
+my($version, $lastversion);
+open(IN, '<', 'configure.in') or die $!;
+while (<IN>) {
+ if (/^RSYNC_VERSION=(.*)/) {
+ $version = $lastversion = $1;
+ last;
+ }
+}
+close IN;
+
+if ($lastversion =~ /cvs$/) {
+ open(IN, '<', 'OLDNEWS') or die $!;
+ $_ = <IN>;
+ close IN;
+ ($lastversion) = /(\d+\.\d+\.\d+)/;
+}
+
+$version =~ s/cvs/pre1/ || $version =~ s/pre(\d+)/ 'pre' . ($1 + 1) /e;
+
+print $break, "\nPlease enter the version number of this release: [$version] ";
+chomp($_ = <STDIN>);
+if ($_ eq '.') {
+ $version =~ s/pre\d+//;
+} elsif ($_ ne '') {
+ $version = $_;
+}