X-Git-Url: http://git.samba.org/samba.git/?p=jelmer%2Fsubvertpy.git;a=blobdiff_plain;f=README;h=6d1a9962f364bb461cbd66592b3b8151b1e48c4c;hp=166a545b6417569003772675fda9ee9c444987d1;hb=86c63131645c6b515eccc021923f78c7187bb0a1;hpb=752eeb3b051e50256acc1cd4ddf7dcfc90c06b8a diff --git a/README b/README index 166a545b..6d1a9962 100644 --- a/README +++ b/README @@ -1,213 +1,57 @@ -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 `_ - -- '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 ------------ - -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