Update build instructions for Windows.
[jelmer/subvertpy.git] / README
diff --git a/README b/README
index 166a545b6417569003772675fda9ee9c444987d1..6d1a9962f364bb461cbd66592b3b8151b1e48c4c 100644 (file)
--- a/README
+++ b/README
-Bazaar support for Subversion branches, working trees and repositories
-======================================================================
+Subvertpy
+=========
 
 
-.. contents::
+Homepage: http://samba.org/~jelmer/subvertpy/
 
 
-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.
-
-
-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. Merged revisions show up 
-  as ghosts.
-
-- 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/
-
-- 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`_ for documentation on that.
-
-.. _Bazaar Documentation Overview: Documentation
-
-Some bzr-svn specific issues are answered by the FAQ_.
-
-.. _FAQ: http://samba.org/~jelmer/bzr-svn/FAQ.html
-
-The way Bazaar metadata is stored in Subversion and the other way around is specified in the `mapping specification`_.
-
-.. _mapping specification: BzrForeignBranches/Subversion/mapping
-
-Support
--------
-Ask bzr-svn related questions on the `Bazaar mailing list`_ or in the 
-#bzr IRC channel on Freenode_.
-
-.. _Bazaar mailing list: http://lists.canonical.com/listinfo/bazaar/
-.. _Freenode: http://www.freenode.net/
+Python bindings for the Subversion version control system that are aimed to be
+complete, fast and feel native to Python programmers.
 
 
-Limitations
------------
+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.
 
 
-Unsupported Subversion File Properties
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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.
 
 
-Some Subversion properties can currently not be represented in Bazaar and are 
-therefore ignored for the time being:
-
-- 'svn:ignore'. 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>`_
-
-- '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/.
-
-
-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.
-
-- Override implementation of get_revision_delta(). Will speed up 'bzr log -v'
-       
-- use svn_ra_replay() when using servers that have Subversion 1.4. Saves a 
-  couple of roundtrips when fetching history.
-
-- Shallow branches. 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.
-
-Some Subversion properties can currently not be represented in Bazaar 
-and are therefore ignored for the time being:
-
-Other features currently held back by Bazaars feature set:
-
-- Tracking copies. 
-  Spec at https://launchpad.net/products/bzr/+spec/filecopies
-
-- 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).
-
-  Requires tracking cherry-picking support in Bazaar:
-   
-  Spec at https://launchpad.net/products/bzr/+spec/bzr-cpick-data
-
-Requirements
+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).
 
 
-Bazaar
-~~~~~~
-
-You will need a recent version of Bazaar, usually the release of Bazaar 
-released in the same month as the release of bzr-svn you are using. bzr-svn 
-will warn if the Bazaar release used is too old or too new.
-
-SQLite
-~~~~~~
-
-If you are using Python 2.4, you will need to have the pysqlite module installed. Python 2.5 and higher have sqlite support built in. 
-
-Subversion development files
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You need the Subversion libraries, including the development files. This should
-be readily packaged for most platforms. The package name for Debian 
-and Debian-based distributions is ``libsvn-dev``.
-bzr-rebase
-~~~~~~~~~~
-
-In order to be able to use the ``svn-upgrade`` command (for those 
-who used versions of bzr-svn older than 0.4.0), you will need the `bzr-rebase`_ 
-plugin.
-
-.. _bzr-rebase: http://bazaar-vcs.org/Rebase
-
-Bugs
-----
-
-Please file bug reports in launchpad. The product URL for bzr-svn is
-https://launchpad.net/bzr-svn/. 
-
-The wiki for this plugin is at http://bazaar-vcs.org/BzrForeignBranches/Subversion.
+A port to Python 3 is planned but has not happened yet. Patches are welcome.
 
 Installation
 ------------
 
 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'. The plugin has to be built as well by running ``make``.
-
-Development
------------
-
-Unit testing
-~~~~~~~~~~~~
-To run the bzr-svn testsuite, simply run 'bzr selftest svn'
-
-Credits
--------
-bzr-svn was written by JelmerVernooij_ with the help from various other people. See the AUTHORS file for a full list of contributors.
-
-.. _JelmerVernooij: http://samba.org/~jelmer/
-
-..
-       vim: ft=rest
+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