git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Make specification of CVS module to convert optional.

From
SVSven Verdoolaege <skimo@kotnet.org>
Date
Jul 3, 2005, 10:36 UTC
Message-ID
<20050703103654.GK5992MdfPADPa@garage.linux.student.kuleuven.ac.be>
In-Reply-To
<20050703103517.GJ5992MdfPADPa@garage.linux.student.kuleuven.ac.be>
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 <skimo@kotnet.org>

--- commit f9714a4a0cd4ed0ccca3833743d98ea874a2232d tree de5d7bba63538f29b8ea2b801d932b7679289b96 parent 1cd3674add10d1e511446f3034a1d233a3da7eab author Sven Verdoolaege <skimo@kotnet.org> Sun, 03 Jul 2005 11:34:59 +0200 committer Sven Verdoolaege <skimo@kotnet.org> 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";
 }
 
Previous: Sven VerdoolaegeNext: Sven Verdoolaege
Message 22 of 49 in “cvsimport: rewritten in Perl”
  1. cvsimport: rewritten in PerlMatthias Urlichs, Jun 28, 2005
  2. Nicolas PitreJun 29, 2005
  3. Matthias UrlichsJun 29, 2005
  4. Matthias UrlichsJun 30, 2005
  5. Nicolas PitreJun 30, 2005
  6. cvsimport-in-Perl: Limit the number of arguments to git-update-cacheMatthias Urlichs, Jun 30, 2005
  7. Nicolas PitreJun 30, 2005
  8. Nicolas PitreJun 30, 2005
  9. Matthias UrlichsJun 30, 2005
  10. cvsimport: perform string comparison on "HEAD"Sven Verdoolaege, Jun 30, 2005
  11. Matthias UrlichsJun 30, 2005
  12. cvsimport: Limit the log string to 32kMatthias Urlichs, Jun 30, 2005
  13. Sven VerdoolaegeJun 30, 2005
  14. Matthias UrlichsJun 30, 2005
  15. Sven VerdoolaegeJun 30, 2005
  16. Matthias UrlichsJun 30, 2005
  17. Sven VerdoolaegeJun 30, 2005
  18. Matthias UrlichsJun 30, 2005
  19. Nicolas PitreJun 30, 2005
  20. Matthias UrlichsJul 1, 2005
  21. Sven VerdoolaegeJul 3, 2005
  22. Make specification of CVS module to convert optional.Sven Verdoolaege, Jul 3, 2005
  23. git-cvsimport-script: clean up documentationSven Verdoolaege, Jul 3, 2005
  24. git-cvsimport-script: Honour CVS_SERVER.Sven Verdoolaege, Jul 3, 2005
  25. git-cvsimport-script: Support :ext: access method.Sven Verdoolaege, Jul 3, 2005
  26. Sven VerdoolaegeJul 3, 2005
  27. Matthias UrlichsJul 3, 2005
  28. Wolfgang DenkJul 5, 2005
  29. Linus TorvaldsJul 6, 2005
  30. Sven VerdoolaegeJul 6, 2005
  31. Matthias UrlichsJul 6, 2005
  32. Wolfgang DenkJul 6, 2005
  33. git-cvsimport-script: leave working directory alone.Sven Verdoolaege, Jul 4, 2005
  34. git-cvsimport-script: use private index.Sven Verdoolaege, Jul 4, 2005
  35. git-cvsimport-script: fix branch switchingSven Verdoolaege, Jul 4, 2005
  36. git-cvsimport-script: update cvsps cache instead of rebuilding itSven Verdoolaege, Jul 4, 2005
  37. Sven VerdoolaegeJun 30, 2005
  38. Matthias UrlichsJun 30, 2005
  39. Sven VerdoolaegeJul 1, 2005
  40. Matthias UrlichsJul 1, 2005
  41. Sven VerdoolaegeJul 4, 2005
  42. Matthias UrlichsJul 4, 2005
  43. Sven VerdoolaegeJul 4, 2005
  44. Matthias UrlichsJul 4, 2005
  45. Sven VerdoolaegeJul 4, 2005
  46. Sven VerdoolaegeJul 3, 2005
  47. Matthias UrlichsJul 4, 2005
  48. Sven VerdoolaegeJul 4, 2005
  49. Stephen C. TweedieJun 30, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.