** please do not ignore. thanks. **
diff against http://216.127.237.133/repos/svn/trunk/contrib/client-side rev 8294
* new option -g: draw lines in selection
* Yes is default selection
* All option in selection listing apart from Y/N
* possibility to relist at the end of the selection
* selection is sorted by filename
Please apply!
(by the way selection code is a crap; if there's more than 40-50
differences it's impossible. should be rewritten using ncurses...)
Index: svn_load_dirs.pl.in
===================================================================
--- svn_load_dirs.pl.in (revision 8299)
+++ svn_load_dirs.pl.in (working copy)
@@ -59,6 +59,9 @@
# Path to already checked-out working copy.
my $opt_existing_wc_dir;
+# Draw ASCII guide at selection
+my $opt_guide;
+
# This is the character used to separate regular expressions occuring
# in the tag directory path from the path itself.
my $REGEX_SEP_CHAR = '@';
@@ -68,12 +71,16 @@
# matching files.
my $property_config_filename;
+# Handle 'a' in yes/no prompts: yes to all.
+my $yes_to_all = 0;
+
GetOptions('no_user_input' => \$opt_no_user_input,
'property_cfg_filename=s' => \$property_config_filename,
'svn_password=s' => \$opt_svn_password,
'svn_username=s' => \$opt_svn_username,
'tag_location=s' => \$opt_import_tag_location,
'verbose+' => \$opt_verbose,
+ 'guide' => \$opt_guide,
'wc=s' => \$opt_existing_wc_dir)
or &usage;
&usage("$0: too few arguments") if @ARGV < 2;
@@ -219,7 +226,7 @@
}
exit 0 unless &get_yes_or_no("Please examine identified tags. Are they " .
- "acceptable? (Y/N) ");
+ "acceptable? (Y/n) ");
print "\n";
}
@@ -422,7 +429,7 @@
print " $dir\n";
}
exit 0 unless &get_yes_or_no("You must add them now to load the " .
- "directories. Continue (Y/N)? ");
+ "directories. Continue (Y/n)? ");
my $message = "Create directories to load project into.\n\n";
@@ -673,7 +680,18 @@
"which you type into this script to have a rename\n",
"performed.\n";
}
-
+
+
+ # sort them by filenames
+ @add_files = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, m#([^/]+)$#] } @add_files;
+ @del_files = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, m#([^/]+)$#] } @del_files;
+
+ my $guide_char = " ";
+ $guide_char = "_" if $opt_guide;
+
+ RELIST:
+
+ $yes_to_all = 0;
for (my $i=0; $i<$max; ++$i)
{
my $add_filename = '';
@@ -699,7 +717,7 @@
{
print
"\n",
- " " x $line_number_width,
+ $guide_char x $line_number_width,
" ",
"Deleted", " " x ($filename_width-length("Deleted")),
" ",
@@ -708,12 +726,12 @@
printf $printf_format, $i;
print " ", $del_filename,
- " " x ($filename_width - length($del_filename)),
+ $guide_char x ($filename_width - length($del_filename)),
" ", $add_filename, "\n";
if (($i+1) % 22 == 0)
{
- unless (&get_yes_or_no("Continue printing (Y/N)? "))
+ unless (&get_yes_or_no("Continue printing (Y/n/a)? "))
{
last;
}
@@ -728,10 +746,14 @@
my $del_index;
my $got_line = 0;
do {
- print "Enter two indexes for each column to rename or F ",
+ print "Enter two indexes for each column to rename, R to relist or F ",
"when you are finished: ";
$line = <STDIN>;
$line = '' unless defined $line;
+ if( $line =~ /^r$/i ) {
+ goto RELIST;
+ }
+
if ($line =~ /^F$/i)
{
$got_line = 1;
@@ -1234,7 +1256,8 @@
" -t tag_dir create a tag copy in tag_dir, relative to svn_url\n",
" -v increase program verbosity, multiple -v's allowed\n",
" -wc path use the already checked-out working copy at path\n",
- " instead of checkout out a fresh working copy\n";
+ " instead of checkout out a fresh working copy\n",
+ " -g use ascii line (___) as guide for selection\n";
}
# Get the next directory to load, either from the command line or from
@@ -1647,13 +1670,16 @@
# lowercase y or n.
sub get_yes_or_no
{
+
+ return 1 if $yes_to_all;
+
unless (@_ == 1)
{
croak "$0: get_yes_or_no $INCORRECT_NUMBER_OF_ARGS";
}
my $message = shift;
-
+
# Assume a positive answer if no user input is being accepted.
return 1 if $opt_no_user_input;
@@ -1663,8 +1689,13 @@
print $message;
$line = <STDIN>;
$line = '' unless defined $line;
- } until $line =~ /[yn]/i;
- $line =~ /y/i;
+ } until $line =~ /[yna]?/i;
+
+ if( $line =~ /a/i ) {
+ $yes_to_all=1;
+ return 1;
+ }
+ $line !~ /n/i;
}
# Determine the native end of line on this system by writing a \n in
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Jan 15 15:05:37 2004