From f9714a4a0cd4ed0ccca3833743d98ea874a2232d Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Sun, 3 Jul 2005 11:34:59 +0200 Subject: [PATCH] Make specification of CVS module to convert optional. If we're inside a checked out CVS repository, there is no need to explicitly specify the module as it is available in CVS/Repository. Also read CVS/Root if it's available and -d is not specified. Finally, explicitly pass root to cvsps as CVS/Root takes precedence over CVSROOT. Signed-off-by: Sven Verdoolaege --- Documentation/git-cvsimport-script.txt | 2 +- git-cvsimport-script | 34 ++++++++++++++++++++++++++-------- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Documentation/git-cvsimport-script.txt b/Documentation/git-cvsimport-script.txt index 8e170cdc1f..2fefe89906 100644 --- a/Documentation/git-cvsimport-script.txt +++ b/Documentation/git-cvsimport-script.txt @@ -11,7 +11,7 @@ SYNOPSIS -------- 'git-cvsimport-script' [ -o ] [ -h ] [ -v ] [ -d ] [ -p ] - [ ] + [ -C ] [ ] DESCRIPTION diff --git a/git-cvsimport-script b/git-cvsimport-script index 7ee8845a3d..dffd134e63 100755 --- a/git-cvsimport-script +++ b/git-cvsimport-script @@ -26,35 +26,53 @@ use POSIX qw(strftime dup2); $SIG{'PIPE'}="IGNORE"; $ENV{'TZ'}="UTC"; -our($opt_h,$opt_o,$opt_v,$opt_d,$opt_p); +our($opt_h,$opt_o,$opt_v,$opt_d,$opt_p,$opt_C); sub usage() { print STDERR <; + chomp $opt_d; + close $f; + $ENV{"CVSROOT"} = $opt_d; } elsif($ENV{"CVSROOT"}) { $opt_d = $ENV{"CVSROOT"}; } else { die "CVSROOT needs to be set"; } $opt_o ||= "origin"; +my $git_tree = $opt_C; $git_tree ||= "."; +my $cvs_tree; +if ($#ARGV == 0) { + $cvs_tree = $ARGV[0]; +} elsif (-f 'CVS/Repository') { + open my $f, '<', 'CVS/Repository' or + die 'Failed to open CVS/Repository'; + $cvs_tree = <$f>; + chomp $cvs_tree; + close $f +} else { + usage(); +} + select(STDERR); $|=1; select(STDOUT); @@ -378,7 +396,7 @@ die "Cannot fork: $!\n" unless defined $pid; unless($pid) { my @opt; @opt = split(/,/,$opt_p) if defined $opt_p; - exec("cvsps",@opt,"-x","-A","--cvs-direct",$cvs_tree); + exec("cvsps",@opt,"-x","-A","--cvs-direct",'--root',$opt_d,$cvs_tree); die "Could not start cvsps: $!\n"; } -- 2.11.4.GIT