Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Differences between revisions 1 and 2
Revision 1 as of 2008-02-21 09:07:35
Size: 2329
Comment:
Revision 2 as of 2008-02-21 09:08:17
Size: 2322
Comment: minor title mod
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= bzr-fastimport Plugin = = bzr-fastimport =

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: 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. After installing Bazaar, grab the latest source like this:

bzr branch lp:bzr-fastimport fastimport

Bugs can be raised and tracked on Launchpad as well. 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

As a rough guide on modern desktop hardware, around 1000 revisions can be imported per minute for projects of several hundred files. The numbers are very dependent on the number of files and number of revisions though:

  • The 6000+ revisions of Wordpress can be imported in just over 2 minutes
  • (TODO: give another 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 in foreign tools. That's coming soon.