old link didn't seem to work, replaced with lp:svn2bzr
|Deletions are marked like this.||Additions are marked like this.|
|Line 120:||Line 120:|
|The current development version may be found in the following Bazaar branch:||The current development version may be obtained using the following Bazaar branch command:|
|Line 122:||Line 122:|
|http://bzr.labix.org/svn2bzr/||bzr branch lp:svn2bzr|
It does that by reading a dump file with the history of a given Subversion repository, and creating the Bazaar repository according to the given parameters.
Support for branches and tags - svn2bzr is able to convert all branches and tags of the subversion repository, splitting them into separate Bazaar branches, using a unique shared repository.
Flexible branch description - it is possible to fine tune what will be migrated and how the process will be done by using regular expressions to include/exclude paths, a provided prefix for consideration, and one of the predefined branch schemas.
Stable file and revision IDs - svn2bzr produces stable file and revision IDs, meaning that if the same subversion repository is converted twice, the resulting bzr branches will interoperate.
Metadata migration - data like committer, timestamp, and log message is automatically migrated to the Bazaar repository.
No external dependencies - svn2bzr doesn't depend on anything else besides a recent Python interpreter and Bazaar itself.
The basic command usage is:
svn2bzr.py [options] <dump file> <output dir>
The following options are accepted:
- Will build the new repository as if the Subversion repository
Add REGEXP to the ordered list of filtering expressions. If a path matches that expression before matching an exclude expression, the path will be converted. If no expressions match in the filtering list, the path is also considered. BRBR
Add REGEXP to the ordered list of filtering expressions. If a path matches that expression before matching an include expression, the path won't be converted. If no expressions match in the filtering list, the path is considered. BRBR
- Define the conversion mechanism used. Currently there are two
schemes: single, and trunk. The single scheme (the default) will convert everything into a single Bazaar 2.0 branch. The trunk scheme expects the Subversion repository to be in the trunk/tags/branches format, and will split the trunk, each tag, and each branch into a different Bazaar 2.0 branch.
Define the logging level to LEVEL, which may be debug, info, warning, or error.
Convert everything inside a Subversion repository into a Bazaar 2.0 branch:
svn2bzr.py svn.dump bzr/
Convert a repository using the trunk/tags/branches scheme into multiple Bazaar 2.0 branches:
svn2bzr.py --scheme=trunk svn.dump bzr/
Convert just the trunk of a Subversion repository using the trunk/tags/branches scheme into a Bazaar 2.0 branch:
svn2bzr.py --prefix=trunk svn.dump bzr/
Convert the trunk and the branches directories of a Subversion repository using the trunk/tags/branches scheme into multiple Bazaar 2.0 branches:
svn2bzr.py --scheme=trunk --exclude=tags svn.dump bzr/
Another way to do the same thing:
svn2bzr.py --scheme=trunk --include=trunk --include=branches --exclude='.*' svn.dump bzr/
The current development version may be obtained using the following Bazaar branch command:
- bzr branch lp:svn2bzr
Check the [http://code.launchpad.net/svn2bzr/ Launchpad code tab] to see how people have been working on the project.
Copyright (c) 2005-2007 Canonical Ltd.
svn2bzr is available under the GPL.
svn2bzr was written by Gustavo Niemeyer <email@example.com>