VCS version 0.05
Unknown CVS server version.
If I try to create a new VCS::File object with a url
of, say,
vcs://localhost/VCS::Cvs/home/djbane/sandbox/README.txt
VCS gives me an "unable to split log" error.
Presumably, this is because the CVS server returns an
error:
absolute pathname illegal for server
Apparently, this is true for the later versions of CVS.
Absolute pathnames were made illegal to fix some
security bug.
My fix is to make the following patch to VCS/Cvs.pm:
--begin patch----------
Index: Cvs.pm
===================================================================
RCS file:
/dcom/arch/cvs/cvsmonsoon/scripts/lib/perl5/site_perl/5.005/VCS/Cvs.pm,v
retrieving revision 1.1
retrieving revision 1.2
diff -c -r1.1 -r1.2
*** Cvs.pm 2002/08/21 10:52:30 1.1
--- Cvs.pm 2002/12/09 14:44:20 1.2
***************
*** 5,10 ****
--- 5,11 ----
use VCS::Cvs::Dir;
use VCS::Cvs::File;
use VCS::Cvs::Version;
+ use File::Spec;
$VERSION = '0.05';
***************
*** 26,32 ****
unless (defined($log_text = $LOG_CACHE{$cache_id})) {
my $cmd =
$LOG_CMD .
! " " . $self->path . " 2>/dev/null |";
#warn "cmd: $cmd\n";
$LOG_CACHE{$cache_id} = $log_text =
$self->_read_pipe($cmd);
}
--- 27,33 ----
unless (defined($log_text = $LOG_CACHE{$cache_id})) {
my $cmd =
$LOG_CMD .
! " " . File::Spec->abs2rel($self->path) .
" 2>/dev/null |";
#warn "cmd: $cmd\n";
$LOG_CACHE{$cache_id} = $log_text =
$self->_read_pipe($cmd);
}
--end patch----------
Note that this requires a reasonably up-to-date Perl
interpreter (I used 5.6.1).
Context diff, suitable for input to patch
Logged In: YES
user_id=555868
Form submission mangled the patch. Please use the attached
file instead.