Call for testing: cvs2bzr

Michael Haggerty mhagger at alum.mit.edu
Wed Aug 19 23:19:18 BST 2009


Ian Clatworthy wrote:
> Michael Haggerty wrote:
>> Let me know when you would like me to pull this patch.  I would have a
>> pretty low acceptance threshold, since it doesn't involve much code and
>> there currently is no cvs2bzr at all.
> 
> It's ready to go IMO. A Bazaar branch with my changes is available from
> https://code.launchpad.net/~ian-clatworthy/+junk/cvs2svn. It should be
> pretty easy to grab the diffs (mostly new files) from there. If not, let
> me know how you'd like the patch put together.

Cool, thanks!  I committed your changes to trunk as r4871-4873 (with
somewhat expanded commit messages :-) ).

I am curious why you did not include the discussion of fixup branches in
www/cvs2bzr.html.  Don't similar considerations apply to cvs2bzr/"bzr
fastimport"?  If not, how do you get around them?

>> * A patch to contrib/verify-cvs2svn.py to allow it to verify cvs2bzr
>> conversions.  Greg Ward has already abstracted out the parts that vary
>> from VCS to VCS.  (Ultimately we should develop at least some minimal
>> test suite for checking non-2svn conversions.)
> 
> Whatever works for hg, ought to work for bzr here. We also allow
> multiple merge parents though. I'll add this to my list but no promises
> as to when I'll get to it. My list is overly long right now. :-(

The code that needs to be specialized is very VCS-specific; for example,
code to check a particular branch out of the repository.

>> When Greg Ward is further along on cvs2hg [1], we should think about
>> refactoring the common code a little better, maybe s/Git/FastImport/ and
>> make git, bzr, and hg all peers that derive from the shared code.
> 
> That would be good. I've copied Greg on this email as my changes may
> help him get cvs2hg in place sooner.

There sure is a lot of duplication between the three DVCSs.
Medium-term, this will be a maintenance headache unless we can reduce
it.  For example, we might think of having only one
"cvs2fi-example.options" with a variable like target=(git|bzr|hg) at the
top of the file then use "if target=='blah'" within the file in the few
places where the three systems diverge.

Michael



More information about the bazaar mailing list