Re: VSS->RevML: couldn't parse source_rev_id

Barrie Slaymaker <[email protected]> Thu, 20 May 2004 21:25:38 -0400
Newsgroups gmane.comp.version-control.revml
Message-ID <[email protected]>
On Tue, May 18, 2004 at 02:19:10PM +0300, Alexandros Karypidis wrote:
> Hi all,
> 
> I'm trying to export a VSS repository into RevML.

RevML?  What for?

> So now, I'm looking into the vss.pm and revml.pm files to see what's 
> happening (unfortunately I'm Perl iliterate but I had to give it a try). 

We'll convert you to the dark side :).

Some background: VSS allows you to delete a file exactly once, then add
a new file with the same name in its place.  In order to model this,
VCP::Source::vss adds a "0." prefix to the VSS rev ids of deleted files
and a "1." prefix to the VSS rev ids of not-deleted files.

It looks like VCP is prepending a "0." to an empty revid string, most
likely the first revision of SomeFile.java.

You might try to narrow down the problem by:

1. Examining the VSS file history for that file for odd looking output,
like revisions with no number.  I'm guessing that the VSS file history
is emitting revisions that VCP doesn't know how to parse and VCP is not
noticing until it tries to use the poorly parsed metadata.  If you can
share the log with us, I can take a swipe at trying to reproduce it here
and fixing it.

2. limiting VCP to transferring just that file (for speed's sake),

3. Verifying that the problem reproduces with that limitation,

4. turning on logging by using the -d command line switch or setting the
environment variable VCPDEBUG=1

5. looking through the log to see what version it's really trying to
get.

> my $vcp_rev_id = $r->source_rev_id;
> 
> So, I guess it has something to do with an invalid r->source_rev_id 
> value being set while the VSS driver scans the revisions? Any pointers 
> on what I should do / where I should look?
> 
> Regards,
> Alex
> 
> PS: using "vcp v0.9, change number 4232 (2004/03/18)"

Good, I think that's current.

- Barrie