Subject: Re: started a cvsps testsuite Was: Re: [PATCH v3 0/2] cvsimport: add test illustrating a bug in cvsps

From: Heiko Voigt <[email-masked]>
Date: Mon, 6 Apr 2009 21:01:49 +0200

On Tue, Mar 24, 2009 at 05:50:03AM +0100, Michael Haggerty wrote:
> Heiko Voigt wrote:
> > I just started a very simple but hopefully effective testsuite to 
> > collect all the issues we found with cvsps. [...]
> > 
> > Maybe Michael can add his tests as well. You should just need to 
> > construct the expected cvsps output.
> 
> Please note that the cvsps output format itself is not rich enough to
> represent all of the information needed, so it is not trivial to
> construct the "expected" output.  

But its possible ;) I have extracted some tests from the scripts you
send and pushed them into the repo. The output format definitely needs
extension. I already included that in the expected output. Maybe you
want to have a look. Tell me what you think.

> The following is from an email that I
> sent to the Mercurial mailing list [1]:
> 
> > I spent some time looking into cvsps, and I don't think that its
> > output format, let alone the output itself, is suitable for
> > industrial-strength conversion from CVS.  For example, as far as I
> > can tell from my brief investigation:
> > 
> > * log messages are not unambiguously separable from the metadata
> > 

Thats one issue which could be addressed by escaping the sequences which
lead to the ambiguity.

All issues described below could be addressed by the examples I included in
the tests.

> > * it seems to only allow a single tag per changeset
> > 
> > * it seems to only apply tags to single changesets, whereas in CVS
> >   files can be added to a tag at different times.
> > ...
> > 
> > * it seems to completely ignore a branch tag if no commits were
> >   ever made on that branch.
> > 
> > * it seems to ignore the effect that a second import to a vendor
> >   branch has on the main branch.
> 
> You might also be interested to know that there has been some work in
> the Mercurial project on a Python-based "cvsps".  I believe they use
> their own version for their cvsimport extension.  I don't know how
> different their cvsps is from the original.

Thats indeed interesting I have to try it once the testsuite is ready.
Maybe we can then just replace the original.

cheers Heiko