update copyright year
remove archaic mention of bzr 2.0 - this is confusing for today's users
|Deletions are marked like this.||Additions are marked like this.|
|Line 72:||Line 72:|
|(the default) will convert everything into a single Bazaar 2.0||(the default) will convert everything into a single Bazaar|
|Line 76:||Line 76:|
|Bazaar 2.0 branch.||Bazaar branch.|
|Line 86:||Line 86:|
|Bazaar 2.0 branch:||Bazaar branch:|
|Line 93:||Line 93:|
|into multiple Bazaar 2.0 branches:||into multiple Bazaar branches:|
|Line 100:||Line 100:|
|`trunk`/`tags`/`branches` scheme into a Bazaar 2.0 branch:||`trunk`/`tags`/`branches` scheme into a Bazaar branch:|
|Line 108:||Line 108:|
|multiple Bazaar 2.0 branches:||multiple Bazaar branches:|
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 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 branch.
Define the logging level to LEVEL, which may be debug, info, warning, or error.
Convert everything inside a Subversion repository into a Bazaar branch:
svn2bzr.py svn.dump bzr/
Convert a repository using the trunk/tags/branches scheme into multiple Bazaar 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 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 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-2009 Canonical Ltd.
svn2bzr is available under the GPL.
svn2bzr was written by Gustavo Niemeyer <firstname.lastname@example.org>