Re: CVSNT2SVN - So what doesn't work then ?

Michael Haggerty <[email protected]> Tue, 24 Mar 2015 08:22:01 +0100
Newsgroups gmane.comp.version-control.subversion.cvs2svn.user
Message-ID <[email protected]>
On 03/23/2015 03:30 PM, Kerry, Richard wrote:
> " whether each individual revision of a file is text vs. binary
> rather than having a single "I'm binary" switch for all revisions of
> a file"
>=20
> Not something we use much. Which either means it won't be a problem,
> or it'll trip us up in some horrible way just when we aren't
> expecting it ....
>=20
> "slightly different storage format" Do you mean a slightly different
> format, or the same format but some unrecognizable data within it ?

The basic format is the same; it is described in the rcsfile(5) manpage
that comes with RCS.

CVSNT uses one or more additional keywords in the "delta" section,
including one that tells whether that particular version of the file is
binary. I can't remember the details offhand.

If you wanted to handle this correctly, you would first have to teach
"rcsparse" to recognize the keyword and pass it to its "Sink". Then you
would have to teach cvs2svn to handle this callback, record the
binary/not binary flag for each version of the file, and teach
OutputPass to handle the file revisions accordingly.

The other difference in CVSNT that I know about is that they support a
different delta encoding format that is more suitable for binary files,
rather than the linewise "diff" format used by RCS/CVS. You could teach
cvs2svn to handle this format, but it is easier to use the --use-cvs
option and let CVSNT's version of the "cvs co" command reconstruct the
revision contents.

> My experience trying it is that everything runs through to
> completion, with a very limited amount of testing showing no fault,
> which suggests it doesn't trip over any serious format issues.
> Though I accept that some unrecognized/unprocessed data may be
> lurking ready to cause a problem later.
>=20
> I haven't used "--use-cvs --cvs" at all.  Not yet anyway. Not sure
> whether you think this will in itself be a problem, or is a
> suggestion to be tried should problems start to show.

Your guess is a good as mine. That's what "unsupported" means, I'm
afraid. OTOH if you don't have a good reason to *avoid* --use-cvs, then
why don't you use it?

> Presumably cvs2svn does know whether files are text/binary, albeit
> that property not versioned .  Although I'm not a Python programmer
> (mainly C++) I could take a look at this with a little guidance where
> to look.

Correct; CVS records "file foo.bar is binary", and that designation
applies to all revisions of the file. CVSNT records "file foo.bar
revision 1.0 is binary, revision 1.1 is text" etc.

Michael

--=20
Michael Haggerty
[email protected]

------------------------------------------------------
http://cvs2svn.tigris.org/ds/viewMessage.do?dsForumId=3D1670&dsMessageId=3D=
3107965

To unsubscribe from this discussion, e-mail: [[email protected]=
ris.org].