[PATCH] Make specification of CVS module to convert optional.
From: Sven Verdoolaege <hidden>
Date: 2016-06-15 22:42:01
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
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 <redacted> --- commit f9714a4a0cd4ed0ccca3833743d98ea874a2232d tree de5d7bba63538f29b8ea2b801d932b7679289b96 parent 1cd3674add10d1e511446f3034a1d233a3da7eab author Sven Verdoolaege [off-list ref] Sun, 03 Jul 2005 11:34:59 +0200 committer Sven Verdoolaege [off-list ref] Sun, 03 Jul 2005 11:40:44 +0200 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
--- a/Documentation/git-cvsimport-script.txt
+++ b/Documentation/git-cvsimport-script.txt@@ -11,7 +11,7 @@ SYNOPSIS -------- 'git-cvsimport-script' [ -o <branch-for-HEAD> ] [ -h ] [ -v ] [ -d <CVSROOT> ] [ -p <options-for-cvsps> ] - <CVS_module> [ <GIT_repository> ] + [ -C <GIT_repository> ] [ <CVS_module> ] DESCRIPTION
diff --git a/git-cvsimport-script b/git-cvsimport-script
--- 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 <<END; Usage: ${\basename $0} # fetch/update GIT from CVS [ -o branch-for-HEAD ] [ -h ] [ -v ] [ -d CVSROOT ] - [ -p opts-for-cvsps ] - CVS_module [ GIT_repository ] + [ -p opts-for-cvsps ] [ -C GIT_repository ] + [ CVS_module ] END exit(1); } -getopts("hqvo:d:p:") or usage(); +getopts("hqvo:d:p:C:") or usage(); usage if $opt_h; -@ARGV == 1 or @ARGV == 2 or usage(); - -my($cvs_tree, $git_tree) = @ARGV; +@ARGV <= 1 or usage(); if($opt_d) { $ENV{"CVSROOT"} = $opt_d; +} elsif(-f 'CVS/Root') { + open my $f, '<', 'CVS/Root' or die 'Failed to open CVS/Root'; + $opt_d = <$f>; + 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 $ 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"; }