Rendering of reStructured text is not possible, please install Docutils.
Bazaar support for Subversion branches, working trees and repositories
======================================================================
.. contents::
Introduction
------------
bzr-svn is a plugin that allows Bazaar_ direct access to Subversion_
repositories. It allows most bzr commands to work directly against Subversion
repositories, as if you were using bzr with a native bzr repository.
.. _Bazaar: http://bazaar-vcs.org/
.. _Subversion: http://subversion.tigris.org/
The plugin can at the moment be used to commit to, pull from, merge from, push
to and view logs of Subversion branches from Bazaar.
It also provides a Bazaar subcommand ("bzr svn-import") for converting
complete Subversion repositories to Bazaar repositories.
Features
--------
The following features are currently present:
- Connecting to remote Subversion repositories over all
protocols supported by Subversion itself (at present:
svn://, svn+ssh://, http:// (webdav), file://)
as well as dump files.
Checkouts, lightweight checkouts and branching works.
- Integrates well with Bazaar.
- Track Bazaar merges in Subversion.
- Subversion working copies. Can be modified, queried
(``bzr status`` on a svn- native working copy created with
``svn co`` works) and committed from.
- Committing to Subversion from Bazaar.
- Push Bazaar revisions to Subversion.
- Follow branch copies. Revision history is not
truncated when a branch was copied in Subversion.
- Efficiently uses network bandwidth.
- Recognizes file metadata (executable bits, symbolic links).
- 'svn-import' command with functionality similar to svn2bzr_.
.. _svn2bzr: http://bazaar-vcs.org/svn2bzr
- Ability to track merges done with SVK_ and write merges from SVK/Subversion
branches in a format understandable by SVK.
.. _SVK: http://svk.elixus.org/
- Writes svn:mergeinfo property used by Subversion 1.5.
- Generates consistent file ids and revision ids. Two branches made using
this plugin of the same Subversion branch will result in *exactly* the same
Bazaar branch.
- Handles complex operations in Subversion: committing to two branches at
once, upgrading directories to branches, copies from early revisions, ...
- Tested on Linux, Windows and Mac OS X.
Documentation
-------------
bzr-svn can be used through the regular Bazaar user interface, see the
`Bazaar Documentation Overview`_ and the `Bazaar User Guide`_ for documentation on that.
.. _Bazaar Documentation Overview: Documentation
.. _Bazaar User Guide: http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#bzr-svn
Some bzr-svn specific issues are answered by the FAQ included with bzr-svn.
Support
-------
Please use the `regular Bazaar channels for support`_ for questions about bzr-svn.
.. _regular Bazaar channels for support: BzrSupport
Limitations
-----------
Unsupported Subversion File Properties
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Some Subversion properties can currently not be represented in Bazaar and are
therefore ignored for the time being:
- 'svn:ignore' is not imported. There should be a `Repository.get_ignores(revid)` call in
Bazaar rather than a magic '.bzrignore' file.
Spec at https://launchpad.net/products/bzr/+spec/new-ignore-rules
- 'svn:mime-type'
- 'svn:eol-style'. Requires eol support in Bazaar.
- 'svn:keywords'. Requires keywords support in Bazaar. Spec at https://launchpad.net/products/bzr/+spec/bzr-keyword-expansion. `#81463 <https://bugs.launchpad.net/bzr-svn/+bug/81463>`_
Other features currently held back by Bazaars feature set:
- 'svn:externals'. Externals should be mapped to Bazaar 'by-reference'
nested branches and the other way around. This can't be implemented
until Bazaars nested branch support lands. The current work-in-progress also
needs support for pointing at the tip of a branch rather than at a
specific revision.
- Tracking copies.
. Spec at https://launchpad.net/products/bzr/+spec/filecopies
- Showing SVN merges as merges in Bazaar.
. Requires support for cherry-picking. Spec at https://launchpad.net/products/bzr/+spec/bzr-cpick-data
Bazaar Commands
~~~~~~~~~~~~~~~
All Bazaar commands should work fine with Subversion branches or should properly inform you that they do not. If you find any commands that don't work, please file a bug.
Releases
--------
See https://launchpad.net/bzr-svn/+download for a current list of releases.
Requirements
------------
Bazaar
~~~~~~
You will need a recent version of Bazaar. bzr-svn
will warn if the Bazaar release used is too old or too new.
Subvertpy
~~~~~~~~~
You need the `Subvertpy`_ Python module, which provides Python bindings
for the Subversion library.
.. _Subvertpy: http://samba.org/~jelmer/subvertpy/
Installation
------------
Simply place this directory in ~/.bazaar/plugins and you should be able
to check out branches from Subversion using bzr. Make sure the directory
name is 'svn'.
Packages
--------
Instead of installing the plugin yourself, you can also install a prepackaged
version of it for your platform.
Windows Setup
~~~~~~~~~~~~~
The standard `Windows installers for Bazaar`_ include bzr-svn.
.. _Windows installers for Bazaar: https://launchpad.net/bzr/+download
Debian/Ubuntu GNU/Linux
~~~~~~~~~~~~~~~~~~~~~~~
Debian/Ubuntu packages are available from Debian experimental/sid and the Bazaar PPA.
Ubuntu's in-development release usually also contain the latest release.
Debian's main repositories also have bzr-svn since at least the lenny release.
OpenSuse Linux
~~~~~~~~~~~~~~
OpenSuse packages created by Michael Wolf are available from http://download.opensuse.org/repositories/home:/maw:/bzr/
Gentoo Linux
~~~~~~~~~~~~
An unofficial Gentoo overlay containing a bzr-svn ebuild are hosted on launchpad at https://launchpad.net/bzr-gentoo-overlay/.
Mac OS X
~~~~~~~~
bzr-svn is included in the MacOSXBundle_.
bzr-svn is now also available in MacPorts, and can be installed with: ``$ sudo port install bzr-svn``
Bugs
----
Please file bug reports in launchpad. The product URL for bzr-svn is
https://launchpad.net/bzr-svn/.
Upgrading
~~~~~~~~~
If you used ancient versions of bzr-svn that used a different mapping mechanism (< 0.4) you may want to use the ``rebase-foreign`` command that is available in the `bzr-rewrite`_ plugin.
.. _bzr-rewrite: http://bazaar-vcs.org/Rewrite
..
vim: ft=rest