Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: cvsimport still not working with cvsnt

From: Guy Rouillier <hidden>
Date: 2016-06-15 22:50:35
Subsystem: the rest · Maintainer: Linus Torvalds

Possibly related (same subject, not in this thread)

On 2/10/2011 5:01 PM, Junio C Hamano wrote:
Martin Langhoff [off-list ref] writes:
quoted
On Sat, Jan 29, 2011 at 11:33 PM, Guy Rouillier[off-list ref]  wrote:
quoted
That was my original inclination.  As no other opinions have been posted
since your message, here is my amended patch, incorporating Martin's
ideas and dieing if the script finds both CVS and CVSNT password files.
ACK! Thanks!
Can somebody resubmit an appliable patch with a proper commit message that
describes the problem and the solution please.

Thanks.
Junio, sorry for the delay in response.  I'm new to all this and I thought 
perhaps one of the listed committers had to submit the official patch.  
Perhaps they do.  I followed the directions in SubmittingPatches.  The result 
is below.  Please let me know if I need to do something differently.  I 
didn't simply send the result of format-match because that would have started 
a different message thread.  Thanks.
From d3ae7d304ee2b89740225b0433bf7d7e07248f59 Mon Sep 17 00:00:00 2001
From: Guy Rouillier <redacted>
Date: Fri, 18 Feb 2011 00:53:10 -0500
Subject: [PATCH] Look for password in both CVS and CVSNT password files.

The existing code looks for the CVS reposity password only in
the CVS password file in HOME/.cvspass. Accommodate the CVS
alternative CVSNT by also looking in HOME/.cvs/cvspass.  Die
if both files are found, and ask the user to remove one.

Signed-off-by: Guy Rouillier <redacted>
---
 git-cvsimport.perl |   32 ++++++++++++++++++++------------
 1 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index 8e683e5..76b4765 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -259,19 +259,27 @@ sub conn {
 		if ($pass) {
 			$pass = $self->_scramble($pass);
 		} else {
-			open(H,$ENV{'HOME'}."/.cvspass") and do {
-				# :pserver:cvs@mea.tmt.tele.fi:/cvsroot/zmailer Ah<Z
-				while (<H>) {
-					chomp;
-					s/^\/\d+\s+//;
-					my ($w,$p) = split(/\s/,$_,2);
-					if ($w eq $rr or $w eq $rr2) {
-						$pass = $p;
-						last;
+			my @cvspasslocations = ($ENV{'HOME'}."/.cvspass", $ENV{'HOME'}."/.cvs/cvspass");
+			my $filecount = 0;
+			foreach my $cvspass (@cvspasslocations) {
+
+				open(H, $cvspass) and do {
+					# :pserver:cvs@mea.tmt.tele.fi:/cvsroot/zmailer Ah<Z
+					$filecount++;
+					while (<H>) {
+						chomp;
+						s/^\/\d+\s+//;
+						my ($w,$p) = split(/[\s=]/,$_,2);
+						if ($w eq $rr or $w eq $rr2) {
+							$pass = $p;
+							last;
+						}
 					}
-				}
-			};
-			$pass = "A" unless $pass;
+				};
+			}
+
+			die("Two CVS password files found: @cvspasslocations, please remove one") if $filecount > 1;
+			die("Password not found for CVSROOT: $opt_d\n") unless $pass;
 		}

 		my ($s, $rep);
--
1.7.3.4



-- 
Guy Rouillier
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help