Re: [PATCH] Add verify-all script to run repeated conversions and verify each one

Greg Ward <[email protected]>
Newsgroups gmane.comp.version-control.subversion.cvs2svn.devel
Message-ID <[email protected]>
On Sat, Aug 22, 2009 at 10:12 AM, Michael Haggerty<[email protected]> wrote:
>> Add verify-all script to run repeated conversions and verify each one.
>> Takes a list of CVS repositories to convert+verify on the command
>> line, defaulting to most of test-data/*-cvsrepos.
>
> I like the way this is heading, and optimistically see the kernel of a
> testing framework that will work with all of the output formats.

My thoughts exactly.

> But
> since the cvs2svn project still doesn't have a "cvs2hg" program, this
> script will not be of much use to the non-Greg-Ward members of our
> community :-)  So I'll hold off on committing it, unless you need it in
> the main repo for some reason.

Oops!  Of course it's no good to anyone else for now.  I'll reorder my
patch queue and put the addition verify-all *after* adding cvs2hg.

> If this is really going to become a testing framework, then we need to
> think about promoting this script and the verify-cvs2svn.py script out
> of the "contrib" directory into the maintained part of the project.  At
> the same time, we might rename verify-cvs2svn.py to something more
> generic and also something importable (i.e., s/-/_/).  Then, also, the
> verify-all script could use verify-cvs2svn.py as a Python library rather
> than as a separate process.

Sounds fine to me.  Turning the script into a module opens up all
sorts of possibilities (like adding an optional verification pass
after cvs2xxx runs).

> By the way, to decide what branches and tags need verification, it would
> be safer to determine the symbol names from the CVS repo instead of the
> target repo.  Otherwise, the verification would not notice if a
> conversion forgets a symbol.

There's a "who guards the guards?" problem: either we get something in
cvs2svn_lib to report all CVS tags and branches (or at least, all that
it was instructed to convert and should therefore be verified), or we
reinvent a little bit of its CVS-grokking logic.  The former means
that the test code depends on the code that it's testing.  The latter
makes the test code independent, but reinvents a wheel.

> In fact, the verification script could input a symbol-info file output
> by the main conversion.  This would not only tell it what symbols are
> present in the CVS repository, but would also let it know which symbols
> were excluded or renamed in the conversion.

If we go with that option (no wheel reinventing, but test code depends
on tested code), then we should also make it write symbol
transformation info.  E.g. verification needs to know to compare CVS
tag x to target tag y.

Greg

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=1667&dsMessageId=2386540

To unsubscribe from this discussion, e-mail: [[email protected]].
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.