Re: [PATCH] git-cvsimport: normalize hostname for password lookup
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 29, 2011, 16:33 UTC
- Message-ID
- <7v4o5hxbj1.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <m2oc3pxkyo.fsf_-_@igel.home>
Andreas Schwab <schwab@linux-m68k.org> writes:
Show 22 quoted lines
> diff --git a/git-cvsimport.perl b/git-cvsimport.perl
> index bbf327f..046fe32 100755
> --- a/git-cvsimport.perl
> +++ b/git-cvsimport.perl
> @@ -249,6 +249,8 @@ sub conn {
>
> # if username is not explicit in CVSROOT, then use current user, as cvs would
> $user=(getlogin() || $ENV{'LOGNAME'} || $ENV{'USER'} || "anonymous") unless $user;
> + # Normalize hostname for lookup in .cvspass
> + $serv = lc $serv;
> my $rr2 = "-";
> unless ($port) {
> $rr2 = ":pserver:$user\@$serv:$repo";
> @@ -263,6 +265,8 @@ sub conn {
> # :pserver:cvs@mea.tmt.tele.fi:/cvsroot/zmailer Ah<Z
> while (<H>) {
> chomp;
> + # FIXME: entries without version prefix
> + # may need to be normalized
> s/^\/\d+\s+//;
> my ($w,$p) = split(/\s/,$_,2);
> if ($w eq $rr or $w eq $rr2) {If I correctly recall what I found out from cvs's changelog while looking at http://thread.gmane.org/gmane.comp.version-control.git/163979/focus=167178 I think the versioned entries are already downcased, so the above, including the "FIXME", looks correct.
As I wrote in another message in that thread, I think this codepath should be refactored a bit better so that it can handle subtle differences between versions and implementations of cvs itself, and also these versioned entries. A good first step might be to separate out the body of the innermost loop we see here that process one entry from the cvspass file into a helper function.
Can you give an eyeball on the update of 077aac1 (Look for password in both CVS and CVSNT password files., 2011-02-18) posted by Guy Rouillier today and help testing it, and put this fix on top that?
Thanks.