Update notes about memory leaks.
[jelmer/subvertpy.git] / README
diff --git a/README b/README
index efa84fa701740ef830cb2f288b721decac826061..c083ae6147a64eaab75cae424d0d2fcb578f2955 100644 (file)
--- a/README
+++ b/README
-== Introduction ==
+#FORMAT rst
+
+============
+Introduction
+============
 
 This directory contains a simple plugin that adds 
 Subversion (http://subversion.tigris.org/) branch support to 
-Bazaar (http://www.bazaar-vcs.org/)
+Bazaar (http://www.bazaar-vcs.org/). This allows ``bzr branch``, ``bzr push``, 
+``bzr pull``, and ``bzr co`` to work directly against Subversion repositories.
+
+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.
 
-== Dependencies == 
+============
+Dependencies
+============
 
-You will need at least version 0.15 of Bazaar or higher.
+You will need at least version 0.92 of Bazaar or higher.
 
-You also need a fairly recent version of the Python bindings to the 
+You also need a fairly recent version of the official Python bindings to the 
 Subversion libraries. At the moment, the svn plugin only works with 
-Subversion 1.5 (trunk). The python-subversion package in Ubuntu Feisty 
-and Debian Etch and Sid also contain the required changes. 
+Subversion 1.5 (trunk). The python-subversion (not python-svn!) package 
+in Ubuntu Feisty and Gutsy and Debian Etch, Lenny and Sid also contain the 
+required changes. 
 
 If you are running an older version of Python (under 2.5), you will also 
 need to have the pysqlite package installed.
 
-== Features ==
+In order to be able to use the ``svn-upgrade`` command (for those 
+who used earlier versions of bzr-svn), you will need the bzr-rebase 
+plugin (http://bazaar-vcs.org/BzrSvn).
+
+========
+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. 
+- 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.
+  Checkouts, lightweight checkouts and branching works.
 
- * Track Bazaar merges in Subversion. Merged revisions show up 
-   as ghosts.
+- Track Bazaar merges in Subversion. Merged revisions show up 
+  as ghosts.
 
- * Subversion working copies. Can be modified, queried 
-   (`bzr status' on a vanilla working copied created with 
-       `svn co' works) and committed from.
+- Subversion working copies. Can be modified, queried 
+  ('bzr status' on a vanilla working copied created with 
+  'svn co' works) and committed from.
 
- * Committing to Subversion from Bazaar.
+- Committing to Subversion from Bazaar.
 
- * Push Bazaar revisions to Subversion. These revisions will 
-   show up in Subversion as a commit with the pushed revision 
-   as one of the parents.
+- Push Bazaar revisions to Subversion. 
 
- * Follow branch copies. Revision history is not 
-   truncated when a branch was copied in Subversion.
+- Follow branch copies. Revision history is not 
+  truncated when a branch was copied in Subversion.
 
- * Efficiently uses network bandwidth. 
+- Efficiently uses network bandwidth. 
 
- * Recognizes file metadata (executable bits, symlinks).
+- Recognizes file metadata (executable bits, symlinks).
  
- * 'svn-import' command with functionality similar to svn2bzr.
+- 'svn-import' command with functionality similar to svn2bzr.
 
- * Ability to track merges done with SVK (http://svk.elixus.org/) 
-   and write merges.
+- Ability to track merges done with SVK (http://svk.elixus.org/) 
+  and write merges.
 
- * 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.
+- 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, ...
+- Handles complex operations in Subversion: committing to two branches at 
+  once, upgrading directories to branches, copies from early revisions, ...
 
-== Future Enhancements ==
+===================
+Future Enhancements
+===================
 
 In the future, I also hope to support:
 
- * Renames. Initial work has been done to support this, 
-   but the number of corner cases is wide, so support for this 
-   has not been enabled by default yet.
-
- * "True" push. This requires storing the Bazaar 
-   inventory and revision in Subversion revision properties.
-
-   Ideally, revision id aliases would have to be used so the 
-   revision id that is being 'overriden' can still exist.
+- Renames. Initial work has been done to support this, 
+  but the number of corner cases is wide, so support for this 
+  has not been enabled by default yet.
 
-   Once this is implemented, it would also be possible and 
-   make sense to store GPG signatures for commits in 
-   Subversion branches.
+- Better performance. Network-wise (both bandwidth and roundtrips), the plugin 
+  is in good shape. However, it is currently quite CPU-intensive for no good 
+  reason and I hope to make a couple of improvements in that area.
 
-   This might require also storing 'bzr:inventory' and 'bzr:revision' 
-   properties in order to make sure the sha1's for a revision keep matching.
-
- * Proper read locking, which has basically been ignored for now. 
-
- * Performance. Network-wise (both bandwidth and roundtrips), the plugin is in
-   good shape. However, it is currently quite CPU-intensive for no good reason 
-   and I hope to make a couple of improvements in that area.
-
-        * Override implementation of get_revision_delta(). Will speed up 'bzr log -v'
+- Override implementation of get_revision_delta(). Will speed up 'bzr log -v'
        
-        * use svn_ra_replay() on systems that have Subversion 1.4. Saves a couple of roundtrips when fetching history.
-
-        * implement svn_ra_get_dir_revs() in Subversion to fetch the properties set on a specific directory all at once.
+- use svn_ra_replay() on systems that have Subversion 1.4. Saves a couple of 
+  roundtrips when fetching history.
 
 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. 
+- 'svn:ignore' is not imported. There should be a 
+  'Repository.get_ignores(revid)' call in Bazaar rather than a magic 
+  '.bzrignore' file. 
    
- * `svn:externals'. Externals should be mapped to Bazaar 'by-reference' 
-   nested branches and the other way around. This can't be implemented 
-   this until Bazaars nested branch support lands. AaronBentley's work 
-   in progress is at http://code.aaronbentley.com/bzr/bzrrepo/nested-trees/.
-   This has been delayed until after 0.9 because of required repository
-   format changes.
+- 'svn:externals'. Externals should be mapped to Bazaar 'by-reference' 
+  nested branches and the other way around. This can't be implemented 
+  this until Bazaars nested branch support lands. AaronBentley's work 
+  in progress is at http://code.aaronbentley.com/bzr/bzrrepo/nested-trees/.
+  This has been delayed until after 0.9 because of required repository
+  format changes.
 
- * `svn:mime-type'
+- 'svn:mime-type'
 
- * `svn:eol-style'
+- 'svn:eol-style'
 
- * `svn:keywords'. Requires keywords support in Bazaar. Spec at 
-   https://launchpad.net/products/bzr/+spec/bzr-keyword-expansion
+- 'svn:keywords'. Requires keywords support in Bazaar. Spec at 
+  https://launchpad.net/products/bzr/+spec/bzr-keyword-expansion
 
 Other features currently held back by Bazaars feature set:
 
- * Horizon revision history. Most of the existing Subversion repositories 
-   are quite large and it would therefore be nice to be able to limit 
-   the amount of history that needs to be retrieved during checkouts.
+- Horizon revision history. Most of the existing Subversion repositories 
+  are quite large and it would therefore be nice to be able to limit 
+  the amount of history that needs to be retrieved during checkouts.
 
-   Spec at https://launchpad.net/products/bzr/+spec/shallow-checkouts
+  Spec at https://launchpad.net/products/bzr/+spec/shallow-checkouts
 
- * Tracking copies. 
+- Tracking copies. 
  
-   Spec at https://launchpad.net/products/bzr/+spec/filecopies
+  Spec at https://launchpad.net/products/bzr/+spec/filecopies
 
 Features held back by Subversion:
 
- * Showing SVN merges as merges in Bazaar. This requires full merge tracking 
-   information in Subversion, something which the Subversion folks are working 
-   on at the moment (see https://svn.collab.net/repos/svn/branches/merge-tracking).
+- Showing SVN merges as merges in Bazaar. This requires full merge tracking 
+  information in Subversion, something which the Subversion folks are working 
+  on at the moment (see https://svn.collab.net/repos/svn/branches/merge-tracking).
 
-   Might require cherry-picking support in Bazaar (or at least the ability 
-   to know about cherry picks). 
+  Requires tracking cherry-picking support in Bazaar:
    
-   Spec at https://launchpad.net/products/bzr/+spec/bzr-cpick-data
+  Spec at https://launchpad.net/products/bzr/+spec/bzr-cpick-data
 
-== Bugs ==
+====
+Bugs
+====
  
 Please file bug reports in launchpad. The product URL for bzr-svn is
 https://launchpad.net/products/bzr-svn/. The wiki for this 
 plugin is at http://bazaar-vcs.org/BzrSvn.
 
-== Installation ==
+============
+Installation
+============
 
 Simply place this directory in ~/.bazaar/plugins and you should be able 
-to check out branches from Subversion using bzr.
+to check out branches from Subversion using bzr. Make sure the directory 
+name is 'svn'.