Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

Differences between revisions 3 and 4
Revision 3 as of 2008-02-21 14:06:31
Size: 2578
Comment: added lp links
Revision 4 as of 2008-02-22 06:52:12
Size: 2649
Comment: nicer link titles
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= bzr-fastimport = = Bazaar Fast Import =
Line 38: Line 38:
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. See [:/FrontEnds: Bazaar Fast Import Front-Ends] for a list of recommended exporters from other tools. Front-ends are available for Subversion, CVS, Git, Mercurial, Darcs and Perforce among others.
Line 46: Line 46:
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. 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: Bazaar Fast Import Stream Format] 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.

Bazaar Fast Import

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: Bazaar Fast Import Front-Ends] 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: Bazaar Fast Import Stream Format] 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.