From: Guy Rouillier Date: Mon, 10 Jan 2011 07:33:17 GMT Subject: Re: cvsimport still not working with cvsnt Message-ID: <4D2AB63D.7040803@burntmail.com> In-Reply-To: <4D119015.6020207@burntmail.com> On 12/22/2010 12:43 AM, Guy Rouillier wrote: > > Emil and Jonathan, thanks for the feedback. Perl is not my strong point, > but I'll take a crack at it over the upcoming holidays. I'm inclined not > to get too fancy and try to second-guess the user's environment. Perhaps > he has both cvs and cvsnt installed for some reason (testing one, using > the other for regular work); perhaps a tool installed one or the other > and he doesn't even know he has them both. Etc. > > So, at most I can see, as Emil suggested, seeing if the entry exists in > both files and is the same in both. If so, or if the entry is only in > one of them, then just use the entry. However, if the entry is in both > files and is different, I'd prefer to just exit with an error and have > the user clarify his environment. Here is my patch for accomplishing the above. As this is my first time submitting a patch, please let me know the correct procedure if submitting a diff here is not appropriate. Thanks. --- git-cvsimport.org 2011-01-09 03:52:39.000000000 -0500 +++ git-cvsimport.cvsnt 2011-01-10 01:42:29.000000000 -0500 @@ -260,6 +260,8 @@ if ($pass) { $pass = $self->_scramble($pass); } else { + # First try the original CVS location. + open(H,$ENV{'HOME'}."/.cvspass") and do { # :pserver:cvs@mea.tmt.tele.fi:/cvsroot/zmailer Ah) { @@ -272,7 +274,30 @@ } } }; - $pass = "A" unless $pass; + + # Now try the CVSNT location. + + open(H,$ENV{'HOME'}."/.cvs/cvspass") and do { + # :pserver:cvs@mea.tmt.tele.fi:/cvsroot/zmailer Ah) { + chomp; + s/^\/\d+\s+//; + my ($w,$p) = split(/=/,$_,2); + if ($w eq $rr or $w eq $rr2) { + my $cvsntpass = $p; + + if (!$pass) { + $pass = $cvsntpass; + } elsif ($pass ne $cvsntpass) { + die("CVSROOT found in both CVS and CVSNT cvspass files, passwords do not match\n"); + } + last; + } + } + }; + + + die("Password not found for CVSROOT: $opt_d\n") unless $pass; } my ($s, $rep); -- Guy Rouillier