Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Revision 3 as of 2008-02-21 14:06:31

Clear message

bzr-fastimport

TableOfContents()

Overview

bzr-fastimport provides a back-end for fast data importing into Bazaar. The usual recipe is:

bzr init-repo .
front-end | bzr fast-import -

Key features include:

  • Fast data importing from most popular VCS tools
  • Easy to develop custom exporters
  • Import whole repositories: branches are created for each head detected.

Note: [https://launchpad.net/bzr-fastimport bzr-fastimport] was inspired by Shawn Peace's [http://www.kernel.org/pub/software/scm/git/docs/git-fast-import.html git-fast-import] and uses a stream format that is upwardly compatible with it. Thanks go to Shawn and the Git community for developing that tool and a range of matching front-ends.

Downloads, Bugs, etc.

This plugin is hosted on Launchpad here: https://launchpad.net/bzr-fastimport. After installing Bazaar, grab the latest source like this:

bzr branch lp:bzr-fastimport fastimport

Bugs can be raised and tracked via Launchpad's bug tracker: https://bugs.launchpad.net/bzr-fastimport/. If you have questions or ideas for discussion, please use the main Bazaar mailing list, <bazaar@lists.canonical.com>.

Documentation

After installing the plugin, see the online help and the bundled documentation.

Front-ends

See [/FrontEnds] for a list of recommended exporters from other tools. Front-ends are available for Subversion, CVS, Git, Mercurial, Darcs and Perforce among others.

Performance

The numbers are very dependent on the number of files and number of revisions. As a rough guide, around 1000 revisions per minute can be imported for projects of several hundred files on a typical desktop. For example, the 6000+ revisions of Wordpress (500 files) can be imported from a Subversion export in just over 2 minutes on my Dell Dimension 9200. Other benchmarking suggests import performance 5-20 times that of bzr-git, for example.

Stream Format

Many projects take the opportunity to clean up cruft when migrating from an older VCS tool to a new one. Rolling your own exporter is often a good way of doing that. If you want to do this, see [/StreamFormat] for the detailed format specification. Exporters can easily be developed in most scripting languages (Python, Perl, Ruby, etc.) and are typically just a few hundred lines long.

Main Issues

bzr-fastimport does not yet support incremental migration as required by users wishing to mirror projects maintained in foreign tools. That's coming soon.