git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] cvsimport: fix usage of cvsimport.module
@ 2007-11-30 22:22 Jeff King
  2007-12-01  2:36 ` Junio C Hamano
  0 siblings, 1 reply; 2+ messages in thread
From: Jeff King @ 2007-11-30 22:22 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Emanuele Giaquinta, git

There were two problems:

  1. We only look at the config variable if there is no module
     given on the command line. We checked this by comparing
     @ARGV == 0. However, at the time of the comparison, we
     have not yet parsed the dashed options, meaning that
     "git cvsimport" would read the variable but "git
     cvsimport -a" would not. This is fixed by simply moving
     the check after the call to getopt.

  2. If the config variable did not exist, we were adding an
     empty string to @ARGV. The rest of the script, rather
     than barfing for insufficient input, would then try to
     import the module '', leading to rather confusing error
     messages. Based on patch from Emanuele Giaquinta.

Signed-off-by: Jeff King <peff@peff.net>
---
On Fri, Nov 30, 2007 at 08:33:04PM +0100, Emanuele Giaquinta wrote:

> I found another minor bug in git-cvsimport, which the
> attached patch fixes [...]

Emanuele, thanks for submitting the patch. However, please be sure
to copy the list (git@vger.kernel.org), and please follow
the format described in Documentation/SubmittingPatches.

As it turns out, while checking your patch, I found another
serious error, so I just rolled them together.

 git-cvsimport.perl   |    8 ++++----
 t/t9600-cvsimport.sh |   21 +++++++++++++++++++++
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index 321a27e..92648f4 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -108,10 +108,6 @@ sub read_repo_config {
             }
 		}
 	}
-    if (@ARGV == 0) {
-        chomp(my $module = `git-repo-config --get cvsimport.module`);
-        push(@ARGV, $module);
-    }
 }
 
 my $opts = "haivmkuo:d:p:r:C:z:s:M:P:A:S:L:";
@@ -119,6 +115,10 @@ read_repo_config($opts);
 getopts($opts) or usage();
 usage if $opt_h;
 
+if (@ARGV == 0) {
+		chomp(my $module = `git-repo-config --get cvsimport.module`);
+		push(@ARGV, $module) if $? == 0;
+}
 @ARGV <= 1 or usage("You can't specify more than one CVS module");
 
 if ($opt_d) {
diff --git a/t/t9600-cvsimport.sh b/t/t9600-cvsimport.sh
index 3338d44..29fee2d 100755
--- a/t/t9600-cvsimport.sh
+++ b/t/t9600-cvsimport.sh
@@ -98,4 +98,25 @@ test_expect_success 'update git module' '
 
 '
 
+test_expect_success 'update cvs module' '
+
+	cd module-cvs &&
+		echo 1 >tick &&
+		cvs add tick &&
+		cvs commit -m 1
+	cd ..
+
+'
+
+test_expect_success 'cvsimport.module config works' '
+
+	cd module-git &&
+		git config cvsimport.module module &&
+		git cvsimport -a -z0 &&
+		git merge origin &&
+	cd .. &&
+	git diff module-cvs/tick module-git/tick
+
+'
+
 test_done
-- 
1.5.3.6.2064.g2e22f-dirty

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] cvsimport: fix usage of cvsimport.module
  2007-11-30 22:22 [PATCH] cvsimport: fix usage of cvsimport.module Jeff King
@ 2007-12-01  2:36 ` Junio C Hamano
  0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2007-12-01  2:36 UTC (permalink / raw)
  To: Jeff King; +Cc: Emanuele Giaquinta, git

Thanks; will apply to 'maint' along with your earlier fixes.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-12-01  2:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-30 22:22 [PATCH] cvsimport: fix usage of cvsimport.module Jeff King
2007-12-01  2:36 ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).