http://www.perlmonks.org?node_id=211028


in reply to Re: Re: Re: CVS repository via Perl
in thread CVS repository via Perl

Hi,
Below is the mail I sent to John Barbee:

Hi John,

When working I am trying to get a directory object and go over all of its sub directories.
I found out that when I am asking for the name of the subdir object, I get an error message.

The error message is:
Can't call method "extension" on an undefined value at /usr/lib/perl5/site_perl/5.6.1/Apache/CVS/File.pm line 231 (#1 +) (F) You used the syntax of a method call, but the slot filled by t +he object reference or package name contains an undefined value. Som +ething like this will reproduce the error:
Looking on the subdir object I saw its rcsconfig object is undef.
Looking in sub load in Apache::CVS::Directory I saw the following:
foreach my $path ( @directories ) { $self->push('directory', Apache::CVS::Directory->new($self->path() . "/$pat +h")); }
And:
foreach my $path ( @files ) { if ( $path =~ /,v$/ ) { $self->push('file', Apache::CVS::File->new($self->path() . "/$path +", $self->rcs_confi +g())); } else { $self->push('plain_file', Apache::CVS::PlainFile->new($self->path() . "/ +$path")); } }

The bottom line is - just by fixing the directory object creation to work like the file creation by sending the $self->rcsconfig object it seems I fixed the problem.
Is it a bug ?
Maybe you did this for a reason, and I harm something else by fixing it like that ?
If it is a bug, and this is a good fix, how do we proceed to release a new version ?
Thanks,
And I will appriciate a quick response,
shushu