Update build instructions for Windows.
[jelmer/subvertpy.git] / README
diff --git a/README b/README
index efa84fa701740ef830cb2f288b721decac826061..6d1a9962f364bb461cbd66592b3b8151b1e48c4c 100644 (file)
--- a/README
+++ b/README
-== Introduction ==
-
-This directory contains a simple plugin that adds 
-Subversion (http://subversion.tigris.org/) branch support to 
-Bazaar (http://www.bazaar-vcs.org/)
-
-== Dependencies == 
-
-You will need at least version 0.15 of Bazaar or higher.
-
-You also need a fairly recent version of the 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. 
-
-If you are running an older version of Python (under 2.5), you will also 
-need to have the pysqlite package installed.
-
-== 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.
-
- * 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.
-
- * 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.
-
- * Follow branch copies. Revision history is not 
-   truncated when a branch was copied in Subversion.
-
- * Efficiently uses network bandwidth. 
-
- * Recognizes file metadata (executable bits, symlinks).
- * 'svn-import' command with functionality similar to svn2bzr.
-
- * 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.
-
- * Handles complex operations in Subversion: committing to two branches at 
-   once, upgrading directories to branches, copies from early revisions, ...
-
-== 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.
-
-   Once this is implemented, it would also be possible and 
-   make sense to store GPG signatures for commits in 
-   Subversion branches.
-
-   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'
-       
-        * 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.
-
-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: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:eol-style'
-
- * `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.
-
-   Spec at https://launchpad.net/products/bzr/+spec/shallow-checkouts
-
- * Tracking copies. 
-   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).
-
-   Might require cherry-picking support in Bazaar (or at least the ability 
-   to know about cherry picks). 
-   
-   Spec at https://launchpad.net/products/bzr/+spec/bzr-cpick-data
-
-== 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 ==
-
-Simply place this directory in ~/.bazaar/plugins and you should be able 
-to check out branches from Subversion using bzr.
+Subvertpy
+=========
+
+Homepage: http://samba.org/~jelmer/subvertpy/
+
+Python bindings for the Subversion version control system that are aimed to be
+complete, fast and feel native to Python programmers.
+
+Bindings are provided for the working copy, client, delta, remote access and
+repository APIs. A hookable server side implementation of the custom Subversion
+protocol (svn_ra) is also provided.
+
+Differences with similar packages
+---------------------------------
+subvertpy covers more of the APIs than python-svn. It provides a more
+"Pythonic" API than python-subversion, which wraps the Subversion C API pretty
+much directly. Neither provide a hookable server-side.
+
+Dependencies
+------------
+Subvertpy depends on Python 2.4 or later, and Subversion 1.4 or later. It should
+work on Windows as well as most POSIX-based platforms (including Linux, BSDs
+and Mac OS X).
+
+A port to Python 3 is planned but has not happened yet. Patches are welcome.
+
+Installation
+------------
+Standard distutils are used - use "setup.py build" to build and "setup.install"
+to install. On most platforms, setup will find the Python and Subversion
+development libraries by itself. On Windows you may have to set various
+environment variables, see the next section for details.
+
+Build instructions for Windows
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Install the SVN dev kit ZIP for Windows from
+  http://sourceforge.net/projects/win32svn/files/
+  E.g. svn-win32-1.4.6_dev.zip
+* Find the SVN binary ZIP file with the binaries for your dev kit.
+  E.g. svn-win32-1.4.6.zip
+  Unzip this in the *same directory* as the dev kit - README.txt will be
+  overwritten, but that is all. This is the default location the .ZIP file
+  will suggest (ie, the directory embedded in both .zip files are the same)
+* Set SVN_DEV to point at this directory.
+* Install BDB.
+  For Subversion 1.7.0 and later:
+  http://www.oracle.com/technetwork/database/berkeleydb/downloads/index-082944.html
+  download Berkeley DB 4.8.30.msi Windows installer and install it.
+  For Subversion 1.6.17 and earlier:
+  http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=688
+  download "db-4.4.20-win32.zip" or earlier version of BDB and extract it.
+* Set SVN_BDB to the installed directory or extracted directory.
+* Install SVN libintl.
+  http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=2627
+  Download svn-win32-libintl.zip.
+  extrat it to the directory that you want.
+* Set SVN_LIBINTL to the extract dir.
\ No newline at end of file