Re: Feedback on using cvs2bzr

Max Bowsher <[email protected]>
Newsgroups gmane.comp.version-control.subversion.cvs2svn.user
Message-ID <[email protected]>
Alexander Belchenko wrote:
> I've just successfully converted CVS repo hosted on sf.net to Bazaar 
> format and I'd like to provide some feedback about this process.

Thanks!

Summary point 3): Extensionless scripts don't work on Windows.

I guess we should FAQ this.


Summary point 5): "cvs2bzr --dumpfile out.fi repo" crashes with
AttributeError: Values instance has no attribute 'blobfile'

Yup. Definitely a bug.


> 6) At this point I've decided to look at using options file. The options 
> example is overwhelmingly big. This is maybe useful for experts but for 
> me as casual user of cvs2bzr it was too much.

I tend to agree that the options files are a bit scary/huge.


> Unfortunately I've discovered that resulting dump file has no texts for 
> all files at all. And after importing this dumpfile to bzr format I've 
> got correct revision history but all files has zero length.
> 
> As I discovered later the problem was in CVSNT executable which is used 
> by TortoiseCVS installed on my computer:
> 
> C:\>cvs version
> Concurrent Versions System (CVSNT) 2.5.03 (Scorpio) Build 2382 
> (client/server)

This sucks. Though I have to admit, my plate is sufficiently full with
non-Windows stuff that I'm unlikely to ever do anything about this
particular issue myself :-/



> 10) But I want to point to another issue with conversion: during/after 
> conversion cvs2bzr has created several dummy revisions to attach tags to 
> them. In bzr tags are very similar to tags in CVS and does not required 
> special commit. They should not clutter the main history. I suppose it's 
> svn-centric point of view and it leaked into this conversion. I'd say 
> it's a bug, because neither bzr not git (IIRC) does not required special 
> commit for tags.

Ah, no, no bug. These are 'fixup' commits - created only when a CVS tag
corresponds to no single revision at all. In git/bzr/hg, tags point at
complete revisions. In CVS they point at any arbitrary selection of
files at potentially unrelated points in history. Hence synthentic
changesets are required to resolve this disparity.

I have some thoughts about changing how this works, specifically:

* only giving these fixups one parent, the state to which they most
closely correspond, rather than recording them as merges from every
contributing changeset.

* writing some sort of report of the mixture to their log message

* fake-merging these changesets back into the line of history they
branched from immediately after their creation, in order to prevent an
explosion of tag-fixup branches in the resulting output - which for bzr
in particular should make for a friendlier conversion result.

These ideas are not quite fully implemented, but I do intend to try to
commit some parts of them soonish.


Max.

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

To unsubscribe from this discussion, e-mail: [[email protected]].
signature.asc (application/pgp-signature, 197 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkrlqaEACgkQfFNSmcDyxYAK2QCcCSL1LTTD3nMm5zN2IOJVztZC
jgMAoNt1KUy3pc5nfkuELpY/1sGumiZD
=ZlWX
-----END PGP SIGNATURE-----
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.