Update build instructions for Windows.
[jelmer/subvertpy.git] / README
diff --git a/README b/README
index 47bee4f5f404119aad2e227bfe8659c69e9954c3..6d1a9962f364bb461cbd66592b3b8151b1e48c4c 100644 (file)
--- a/README
+++ b/README
-============
-Introduction
-============
+Subvertpy
+=========
 
-This directory contains a simple plugin that adds 
-Subversion (http://subversion.tigris.org/) branch support to 
-Bazaar (http://www.bazaar-vcs.org/). This allows ``bzr branch``, ``bzr push``, 
-``bzr pull``, and ``bzr co`` to work directly against Subversion repositories.
+Homepage: http://samba.org/~jelmer/subvertpy/
 
-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.
+Python bindings for the Subversion version control system that are aimed to be
+complete, fast and feel native to Python programmers.
 
-============
-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, ...
+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.
 
-===================
-Future Enhancements
-===================
+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.
 
-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.
-
-- 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.
-
-- 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
+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).
 
-====
-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.
+A port to Python 3 is planned but has not happened yet. Patches are welcome.
 
-============
 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'.
+------------
+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