Migrating CVS repositories to Bazaar

Ian Clatworthy ian.clatworthy at internode.on.net
Tue Feb 17 07:14:28 GMT 2009


Michael Haggerty wrote:
> Ian Clatworthy wrote:

> cvs2git currently doesn't interact with git at all--it simply dumps one
> or two git-fast-import files to disk for the user to load manually using
> "git fast-import".  Therefore, at the current state of technology,
> cvs2git == cvs2hg == cvs2bzr and I could just as well have called it
> cvs2fastimport (or cvs2fast-import; can't you guys come to agreement
> about hyphens?!? :-) ).

cvs2fastimport sounds good to me. (Our plugin is called fastimport and
our command is called fast-import. That's because plugins map to
Python packages and Python doesn't like hyphens in package names. It
also allows 'bzr help fastimport' to give high level help on the plugin
while 'bzr help fast-import' explains just that command in detail.)

I should also mention that Darcs now supports fastimport format,
both for import and export.

> Only over the past few weeks have I introduced an actual "cvs2git"
> script that starts up cvs2svn in the "2git" mode rather than having to
> use cvs2svn with a large options file.  Now that that is done, it would
> be pretty easy to add cvs2bzr and cvs2hg scripts--if somebody would tell
> me what default options to use.  For example:
> 
> - cvs2xxx can output blobs in a file separate from that of the DAG (much
> faster, supported by git-fast-import) or inline blobs (much slower,
> needed by "hg fastimport").  Which one would bzr-fastimport prefer?

Inline blobs. We handle both blob commands and :inline inside the stream.

> - A git commit can have an arbitrary number of parents.  An hg commit
> can have at most two.  Does bzr have a limit?

There's no limit in Bazaar.

> - Are there any other limitations of bzr-fastimport relative to the
> git-fast-import file format specification?  Does bzr need any additional
> information?

We don't handle filecopy yet. Otherwise, I believe we're now fully
compliant.

> Eventually it would also be nice to add support for the bzr version of
> some of the things listed as "limitations" on the cvs2git page [1].  For
> example, handling of .cvsignore files, checking bzr constraints on tag
> and branch names, etc.  I think that bzr also keeps track of
> directories, doesn't it (even empty ones)?  That might require some
> tweaks in the cvs2bzr output.

Yes we do. Directories are tracked as first class objects, they can be
renamed and they can be empty.

Ian C.



More information about the bazaar mailing list