Call for testing: cvs2bzr

Michael Haggerty mhagger at alum.mit.edu
Thu Aug 20 22:02:13 BST 2009


Ian Clatworthy wrote:
> Michael Haggerty wrote:
>> 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 :-) ).
> 
> Excellent. Thanks. Next step is to get the cvs2svn trunk released as
> 2.3.0 and uploaded into karmic. :-)

What would be the deadline to get into karmic?  It would be nice if the
new and improved cvs2hg were included in release 2.3.0, if that is at
all realistic.

Greg?  Do you have any idea of an ETA for cvs2hg?

>> 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?
> 
> I don't know enough about the problem yet but I assumed the fixup script
> was git-specific. Is there a sample data set I can try importing into
> Bazaar to better understand what we need to do and why? This problem
> isn't one you can just make go away in an earlier pass is it? It seems
> inefficient for each downstream tool to have to solve it independently.

The issue is explained pretty well in the git-fast-import man page [1],
section "Use Tag Fixup Branches".  The problem is that CVS tags are not
necessarily snapshots of the state of a particular branch at a single
point in time; they can include file revisions from multiple branches
and/or file revisions that coexisted in a single repository revision.
Since a git tag is simple the SHA1 of a node in the DAG, nontrivial tags
have to be created by first creating a node in the DAG with the required
contents, then tagging that node.  The node is created on a "fixup branch".

To find an example, do almost any cvs2git conversion then grep the
dumpfile for "TAG.FIXUP".  For example, the cvs2svn test suite test
number 145 "test output in git-fast-import format" contains some examples.

You would be a better judge of how much of that is relevant to Bazaar.

Michael

[1] http://www.kernel.org/pub/software/scm/git/docs/git-fast-import.html



More information about the bazaar mailing list