Package: libvcp-perl
Severity: important

Looking at svk, I wanted to investigate why "svk mirror" does not work
for me, so I start with simple vcp operations, like copying from a
remote cvs repo to a local one, but vcp fails:

$ vcp cvs::pserver:[EMAIL PROTECTED]:/cvsroot/boomerang:boomerang -r 1.1: 
cvs:/export/work/yann/tmp/cvstest:boom
vcp v0.9, change number 4232 (2004/03/18)
vcp: $ cvs login   # for 'anonymous'
CVS password:
vcp: $ cvs ... checkout boomerang   # establish local CVS workspace
vcp: appending required ChangeSets filter
vcp: $ cvs ... checkout boom   # establish local CVS workspace
vcp: cvs checkout failed.  Missing module?
vcp: $ cvs import ... boom   # create module in repository
vcp: $ cvs ... checkout boom   # establish local CVS workspace
vcp: running cvs log -r1.1: boomerang
vcp: found 9266 rev(s) with 2125 tag applications
vcp: aggregating changes
vcp: writing revisions: [|         ]    0/9266
unexpected stderr from 'cvs':
cvs: cvs [checkout aborted]: Absolute module reference invalid: 
`/boomerang/gui/boomerang.cpp'
cvs -Q -z9 -d:pserver:[EMAIL PROTECTED]:/cvsroot/boomerang checkout -r1.1 -p 
/boomerang/gui/boomerang.cpp returned 1 not 0
stderr:
    cvs [checkout aborted]: Absolute module reference invalid: 
`/boomerang/gui/boomerang.cpp'
Can't fetch initial working directory at /usr/share/perl5/VCP/DB_File.pm line 
218
Can't fetch initial working directory at /usr/share/perl5/VCP/Driver.pm line 518
vcp: No such file or directory: 
/export/work/yann/wesnoth/cvs/tmp/vcp13552/dest-cvs/co
vcp: unable to remove work directory 
'/export/work/yann/wesnoth/cvs/tmp/vcp13552/dest-cvs/co'
Can't fetch initial working directory at /usr/share/perl5/VCP/Plugin.pm line 189



The problem comes from an invalid call to cvs, as shown in the log:

81.502063 vcp: $ cvs -Q -z9 -d:pserver:[EMAIL PROTECTED]:/cvsroot/boomerang 
checkout -r1.1 -p /boomerang/gui/boomerang.cpp > /export/work/yann/wesnoth/
cvs/tmp/vcp13552/source-cvs/co/revs/boomerang/gui/boomerang.cpp/1.1
cvs [checkout aborted]: Absolute module reference invalid: 
`/boomerang/gui/boomerang.cpp'
83.377613 vcp: unexpected stderr from 'cvs':
cvs: cvs [checkout aborted]: Absolute module reference invalid: 
`/boomerang/gui/boomerang.cpp'
cvs -Q -z9 -d:pserver:[EMAIL PROTECTED]:/cvsroot/boomerang checkout -r1.1 -p 
/boomerang/gui/boomerang.cpp returned 1 not 0
stderr:
    cvs [checkout aborted]: Absolute module reference invalid: 
`/boomerang/gui/boomerang.cpp'


What is strange, is that Source::cvs.pm says:

   my $cvs_name = $self->SUPER::denormalize_name( $r->source_name );
       ## Use SUPER:: to avoid getting the leading '/'

Obviously SUPER::denormalize_name() does not ensure this in any way.
The following patch addresses this:

--- /usr/share/perl5/VCP/Source/cvs.pm.dist     2005-06-30 22:59:28.000000000 
+0200
+++ /usr/share/perl5/VCP/Source/cvs.pm  2005-06-30 23:00:59.000000000 +0200
@@ -544,8 +544,7 @@
    my $wp = $self->work_path( "revs", $r->source_name, $r->source_rev_id ) ;
    $self->mkpdir( $wp ) ;

-   my $cvs_name = $self->SUPER::denormalize_name( $r->source_name );
-       ## Use SUPER:: to avoid getting the leading '/'
+   ( my $cvs_name = $self->denormalize_name( $r->source_name ) ) =~ s{^/*}{};

    $self->cvs( [
          "checkout",


This is however not sufficient:

vcp: running cvs log -r1.1: boomerang
vcp: found 9266 rev(s) with 2125 tag applications
vcp: aggregating changes
vcp: writing revisions: [-         ]    0/9266
no rev number found in cvs commit log output for 
/export/work/yann/svk/tmp/vcp14432/dest-cvs/co/boom/boomerang/gui/boomerang.cpp(/boomerang/gui/boomerang.cpp#1.1):
    cvs revs parsed: $VAR1 = {};
Can't fetch initial working directory at /usr/share/perl5/VCP/Plugin.pm line 189


A quick investigation seems to show that dest::cvs::commit(), when
calling $self->cvs(), ignores stderr, and expects something on stdout,
but gets nothing on stdout.

I'll get a deeper look at it later, if noone beats me to it.

-- 
Yann Dirson    <[EMAIL PROTECTED]> |
Debian-related: <[EMAIL PROTECTED]> |   Support Debian GNU/Linux:
                                    |  Freedom, Power, Stability, Gratis
     http://ydirson.free.fr/        | Check <http://www.debian.org/>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to