Merge upstream.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 17 May 2007 19:04:30 +0000 (20:04 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 17 May 2007 19:04:30 +0000 (20:04 +0100)
34 files changed:
README
TODO
branch.py
branchprops.py
checkout.py
commit.py
convert.py
errors.py
fetch.py
fileids.py
format.py
logwalker.py
mapping.txt
repository.py
scheme.py
tests/__init__.py
tests/test_blackbox.py
tests/test_branch.py
tests/test_branchprops.py
tests/test_checkout.py
tests/test_commit.py
tests/test_convert.py
tests/test_fileids.py
tests/test_logwalker.py
tests/test_radir.py
tests/test_repos.py
tests/test_scheme.py
tests/test_transport.py
tests/test_tree.py
tests/test_upgrade.py
tests/test_workingtree.py
transport.py
tree.py
upgrade.py

diff --git a/README b/README
index efa84fa701740ef830cb2f288b721decac826061..da00b861dac4bbd9a1282042a212bd6ae34c067c 100644 (file)
--- a/README
+++ b/README
@@ -1,10 +1,14 @@
-== Introduction ==
+============
+Introduction
+============
 
 This directory contains a simple plugin that adds 
 Subversion (http://subversion.tigris.org/) branch support to 
 Bazaar (http://www.bazaar-vcs.org/)
 
-== Dependencies == 
+============
+Dependencies
+============
 
 You will need at least version 0.15 of Bazaar or higher.
 
@@ -16,133 +20,142 @@ 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 ==
+========
+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. 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.
+- 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.
+- 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.
+- "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.
+  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.
+  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.
+  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. 
+- 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.
+- 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.
+- 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.
+- 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: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). 
+  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
+  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.
diff --git a/TODO b/TODO
index ccf6a8369fd51acafee5d7a023f201eb63fd8f7e..66ccb207f25c3f035a9c0e4cac248d4c8d18b26b 100644 (file)
--- a/TODO
+++ b/TODO
@@ -19,5 +19,4 @@
 - report changes to delta editor in Branch.pull()
 - add tests for objects returned by WorkingTree.pull(), Branch.pull()
 - blackbox tests
-- test Branch.get_parent()
 - split fetch tests out of test_repos
index 462f5f091dd4733d4313f773d74caf2c73f7f96c..70240027203a8747cd36debcf70e782f8e25715a 100644 (file)
--- a/branch.py
+++ b/branch.py
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Handles branch-specific operations."""
 
 from bzrlib.branch import Branch, BranchFormat, BranchCheckResult, PullResult
 from bzrlib.bzrdir import BzrDir
index 01e974d89af8aeb3264036240a99d8ee073b543a..d328c418664bdbdbc16c26daaadd6833d41d9d70 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Branch property access and caching."""
+
 from bzrlib.errors import NoSuchRevision
 from bzrlib.trace import mutter
 
index b1b3de75907bbf19812551a955808c4e339e6afd..931ba0cc5ea8c7b22eca323232e5506d3c756ae2 100644 (file)
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Checkouts and working trees (working copies)."""
 
 from bzrlib.branch import PullResult
 from bzrlib.bzrdir import BzrDirFormat, BzrDir
@@ -57,8 +58,7 @@ class WorkingTreeInconsistent(BzrError):
 
 
 class SvnWorkingTree(WorkingTree):
-    """Implementation of WorkingTree that uses a Subversion 
-    Working Copy for storage."""
+    """WorkingTree implementation that uses a Subversion Working Copy for storage."""
     def __init__(self, bzrdir, local_path, branch):
         self._format = SvnWorkingTreeFormat()
         self.basedir = local_path
@@ -599,6 +599,7 @@ class SvnWorkingTree(WorkingTree):
 
 
 class SvnWorkingTreeFormat(WorkingTreeFormat):
+    """Subversion working copy format."""
     def get_format_description(self):
         return "Subversion Working Copy"
 
index d54d6af84cc4b533841db0dc96c361f053d41aba..0502042bd10f0aa19904bea0dbc1457e98e3b997 100644 (file)
--- a/commit.py
+++ b/commit.py
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Committing and pushing to Subversion repositories."""
 
 import svn.delta
 from svn.core import Pool, SubversionException
@@ -382,6 +383,19 @@ class SvnCommitBuilder(RootCommitBuilder):
 
 
 def push_as_merged(target, source, revision_id):
+    """Push a revision as merged revision.
+
+    This will create a new revision in the target repository that 
+    merges the specified revision but does not contain any other differences. 
+    This is done so that the revision that is being pushed does not need 
+    to completely match the target revision and so it can not have the 
+    same revision id.
+
+    :param target: Repository to push to
+    :param source: Repository to pull the revision from
+    :param revision_id: Revision id of the revision to push
+    :return: The revision id of the created revision
+    """
     rev = source.repository.get_revision(revision_id)
     inv = source.repository.get_inventory(revision_id)
 
index a1c1851b809f5c5d71853e7a034295914a7f68f7..78f85f2b22517184374006d16785b3e6907ec227 100644 (file)
@@ -13,7 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-#
+"""Conversion of full repositories."""
 import os
 import tempfile
 
@@ -48,6 +48,7 @@ def transport_makedirs(transport, location_url):
 
 
 class NotDumpFile(BzrError):
+    """A file specified was not a dump file."""
     _fmt = """%(dumpfile)s is not a dump file."""
     def __init__(self, dumpfile):
         BzrError.__init__(self)
index 4d8e0747d3c8918cc24c4a3b5014916c57d812fd..38ee6a556b0aaa5819124a59f8340dd5c1868e89 100644 (file)
--- a/errors.py
+++ b/errors.py
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Subversion-specific errors and conversion of Subversion-specific errors."""
 
 from bzrlib.errors import BzrError, ConnectionReset, LockError
 
 import svn.core
 
 class NotSvnBranchPath(BzrError):
+    """Error raised when a path was specified that did not exist."""
     _fmt = """{%(branch_path)s}:%(revnum)s is not a valid Svn branch path"""
 
     def __init__(self, branch_path, revnum=None):
index 598d1d37c8e376bf9fcdefe63818fdaa0a702026..550aefbfc271b8c1c1f7e17ee01434c6d8dda177 100644 (file)
--- a/fetch.py
+++ b/fetch.py
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Fetching revisions from Subversion repositories in batches."""
 
 import bzrlib
 from bzrlib.inventory import Inventory
index 27804ef338220fddfd12c915c4032f5dce0a3aa2..8af7dae1673827407a5a4edae72156e1a12e62bd 100644 (file)
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Generation of file-ids."""
 
 from bzrlib.errors import NotBranchError
 from bzrlib.revision import NULL_REVISION
index 373aa2bcf4e7f7f6b10f4f68d76ac11659852e58..2d77785d9c6c971e82506bd6e583c76032755d2a 100644 (file)
--- a/format.py
+++ b/format.py
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Subversion BzrDir formats."""
 
 from bzrlib.bzrdir import BzrDirFormat, BzrDir
 from bzrlib.errors import (NotBranchError, NotLocalUrl, NoRepositoryPresent,
@@ -144,6 +145,7 @@ class SvnRemoteAccess(BzrDir):
 
 
 class SvnFormat(BzrDirFormat):
+    """Format for the Subversion smart server."""
     _lock_class = TransportLock
 
     @classmethod
index 0dd7137faeaf32b89984f146b6e020be537c524b..099bbf4ed1ea34634ddfb96f0a9bf414635f2af8 100644 (file)
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Cache of the Subversion history log."""
 
 from bzrlib.errors import NoSuchRevision
 import bzrlib.ui as ui
index 057b1bd401064fcea8b42b613268a77e5b9e14c5..ee88ac81457a0909594a40769a1debecc2443ad0 100644 (file)
@@ -7,37 +7,41 @@ Updated December 2006.
 Updated January 2007.
 Updated February 2007.
 
-== Branch paths ==
+============
+Branch paths
+============
 
 It is hard to know, given a SVN URL, to figure out what branch a particular 
 file is in. Other then the convention that branches are named 'trunk' and 
-'branches/*', there is no way to automatically find out what a branch is.
+'branches/\*', there is no way to automatically find out what a branch is.
 Finding out what a branch is and what is not is done by a BranchingScheme 
 implementation. At the moment, the following branching schemes are available:
 
- * NoBranchingScheme: The top-level directory in the repository is a branch.
-                    (consequence of this is that there is only one branch total)
+- NoBranchingScheme: The top-level directory in the repository is a branch.
+  (consequence of this is that there is only one branch total)
 
- * TrunkBranchingScheme: There is a directory structure with 'trunk', 
-   'branches', and 'tags' directories as common in Subversion-based projects.
-   These directories can be nested (e.g. subproject1/trunk) inside the 
-   repository. The level of nesting is stored.
+- TrunkBranchingScheme: There is a directory structure with 'trunk', 
+  'branches', and 'tags' directories as common in Subversion-based projects.
+  These directories can be nested (e.g. subproject1/trunk) inside the 
+  repository. The level of nesting is stored.
 
- * ListBranchingScheme: There is a list of branches. This branching 
-   scheme is present in the code, but is never used automatically (yet).
+- ListBranchingScheme: There is a list of branches. This branching 
+  scheme is present in the code, but is never used automatically (yet).
 
 The branching scheme can be explicitly specified or automatically guessed. 
 The guessing algorithm currently works as follows and is based on paths 
 relative to the repository root:
 
- * Look for 'trunk', 'branches' or 'tags' inside the path - if found, 
-   create a TrunkBranchingScheme with the found level of nesting.
+- Look for 'trunk', 'branches' or 'tags' inside the path - if found, 
+  create a TrunkBranchingScheme with the found level of nesting.
 
- * Assume NoBranchingScheme
+- Assume NoBranchingScheme
 
 Branching scheme names can not contain colons.
 
-== Revision ids ==
+============
+Revision ids
+============
 
 An easy way to generate globally unique and reproducible revision ids is to 
 simply combine the repositories UUID and commit revision number. 
@@ -47,9 +51,7 @@ then one branch (something that is possible in SVN). This can be fixed by
 including the branch path (trunk, branches/SAMBA_4_0, etc) in the 
 revision-id. Example revision id:
 
-{{{
-svn-v3-trunk:0c0555d6-39d7-0310-84fc-f1cc0bd64818:trunk:14323
-}}}
+``svn-v3-trunk:0c0555d6-39d7-0310-84fc-f1cc0bd64818:trunk:14323``
 
 The version number is used to distinguish between versions of the mapping 
 between Bazaar and Subversion. The mapping will change when previously 
@@ -63,9 +65,7 @@ a parent path is a branch according but not according to another).
 Since '/' and whitespace are forbidden in revision ids, the branch paths
 are all urlencoded. Example revision id for branches/foobranch:
 
-{{{
-svn-v3-trunk-1:0c0555d6-39d7-0310-84fc-f1cc0bd64818:branches%2Ffoobranch:14323
-}}}
+``svn-v3-trunk-1:0c0555d6-39d7-0310-84fc-f1cc0bd64818:branches%2Ffoobranch:14323``
 
 It is also possible that the revision id for a particular revision is 
 stored in a revision property. To guarantee that the meaning of a revision id 
@@ -85,7 +85,9 @@ A (path,revnum) tuple is valid if:
 * either path,revnum or one of its children was touched in the particular 
   revision
 
-== File ids ==
+========
+File ids
+========
 
 Subversion does not use file ids. It is not possible to know whether a file in 
 revision X and a file in revision Y are the same without traversing over all 
@@ -93,7 +95,7 @@ the revisions between X and Y.
 
 File ids use the following syntax:
 
-<REVNO>@<UUID>:<BRANCHPATH>:<PATH>
+``<REVNO>@<UUID>:<BRANCHPATH>:<PATH>``
 
 Since / is forbidden in file ids, all characters are urlencoded.
 
@@ -101,7 +103,7 @@ The same rules apply to the roots of branches. This means there is no
 predefined file id for tree roots.
 
 Alternatively, these file ids can be mapped to more specific file ids. Such 
-a map should be stored in the `bzr:file-ids' property that is set on the 
+a map should be stored in the 'bzr:file-ids' property that is set on the 
 branch path.
 
 The bzr:file-ids property should contain a list of mappings. Entries are 
@@ -134,7 +136,9 @@ where <SHA1> is the sha1 of the file's path.
 
 NEXT VERSION: Special rules are applied to make sure that renames are tracked.
 
-== Properties ==
+==========
+Properties
+==========
 
 SVN allows setting properties on versioned files and also interprets several 
 of these properties. 
@@ -149,7 +153,9 @@ of these properties.
 
 "svk:merge" is understood and set where possible.
 
-== Ancestry Information ==
+====================
+Ancestry Information
+====================
 
 Ancestry in Subversion is linear. Most revisions have just one parent. Files 
 can be copied, moved or merged from other branches, which can result in partial merges 
@@ -175,19 +181,25 @@ Subversion branch and not on the mainline. If 'svk:merge' is changed and
 'bzr:merge' didn't, the diff in 'svk:merge' is also used to obtain the 
 parents of a commit.
 
-This means svk and bzr _should be_ interoperable. However, there are no tests 
+This means svk and bzr *should be* interoperable. However, there are no tests 
 for this yet. 
 
-== Revision properties ==
+===================
+Revision properties
+===================
 
 Bazaar revision properties are stored in the file properties of the 
 branch path in Subversion. Their names are prefixed with "bzr:revprop:"
 
-== Signatures ==
+==========
+Signatures
+==========
 
 NEXT VERSION: GPG Signatures for commits will be stored in the SVN revision property 'bzr:gpg-signature'. 
 
-= Revisions =
+=========
+Revisions
+=========
 
 Revision 1 was the original version of this document.
 
@@ -201,3 +213,8 @@ and added the bzr:revision-id-vX property.
 
 Revision 3 uses real file ids for the tree root rather than the hardcoded 
 "TREE_ROOT" and adds the file id map.
+
+=======
+Authors
+=======
+Jelmer Vernooij <jelmer@samba.org>
index 9f61e653d01aab3e80c9f4ee6a1c69306de0e8f3..16a90fdf37512b00996d17c50d3af8a281c03774 100644 (file)
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Subversion repository access."""
 
 import bzrlib
 from bzrlib.branch import BranchCheckResult
index 7d64911a8b26686db99317d0b308255a6a384c86..0709f03a1d7827a96d600dad14611aead938b0c1 100644 (file)
--- a/scheme.py
+++ b/scheme.py
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Branching scheme implementations."""
 
 from bzrlib.errors import NotBranchError
 
index e9a19ae91512efc22702298adc9c61355d023803..2253f1dfe66404bb77f98b5209e88fdb6b1cf45d 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Tests for the bzr-svn plugin."""
+
 import os
 import bzrlib
 from bzrlib import osutils
index 72735bf2bf9e2ab42fc319921fae3f0b1f583920..316a0f80a063b54555e7b917654a9ae62b857a28 100644 (file)
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Blackbox tests."""
 
 from bzrlib.tests.blackbox import ExternalBase
 from tests import TestCaseWithSubversionRepository
index 6482bc1cdd3f9ddd44b27540cbd788f6964e66ee..8b641dcc69785c000bbd22ac338ca4f2bcb81f26 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Branch tests."""
+
 from bzrlib.branch import Branch
 from bzrlib.bzrdir import BzrDir
 from bzrlib.errors import NoSuchFile, NoSuchRevision
index f4d32d6ab1fc3bfb1ec0467397d459e67c3286f5..bc749ae798ff59ee6080f57a0aed3a82f162d94a 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Branch property access tests."""
+
 from bzrlib.errors import NoSuchRevision
 
 from tests import TestCaseWithSubversionRepository
index fcf94e0283c0d9689fd87fa67a15f75d7b6b122d..5ffbf247a0bd7fbde2186e9b6d34038d50af196a 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Checkout tests."""
+
 from bzrlib.bzrdir import BzrDir
 from bzrlib.errors import NoRepositoryPresent
 from bzrlib.tests import TestCase
index 3e2b6f0efd537b6b7c289dc0e2f025bc558b3c7b..0c8ea742f2a35a04b7a2e04ce75ea3795f9e51f2 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Commit and push tests."""
+
 from bzrlib.branch import Branch, PullResult
 from bzrlib.bzrdir import BzrDir
 from bzrlib.errors import DivergedBranches
index 06c0eb22fd606221c9d3b9118a4be40ce119c03d..ffe4b8e6d3f3e618cf1ddf33730656dc8ca917db 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Full repository conversion tests."""
+
 from bzrlib.branch import Branch
 from bzrlib.bzrdir import BzrDir
 from bzrlib.errors import NotBranchError, NoSuchFile
index cd378151a966ba9ed05086673a7fc3977b95b80d..78120f1bcde569e64a006514c38488057c8e1d0b 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""File id tests."""
+
 from bzrlib.bzrdir import BzrDir
 from bzrlib.repository import Repository
 from bzrlib.trace import mutter
index 0976ae42946f173bb8b76482c938960d1aa744c7..7cf3ea4d0bc836ebfba6ebc8e30bd9e54a2fdd13 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Log walker tests."""
+
 from bzrlib.errors import NoSuchRevision
 
 import os
index 7a668022060c9a7d28ba8b6ddb4e89c932b3418c..7ba9caea8fbe4454550e512bbbb9bf7a6a4e1a8f 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Remote access tests."""
+
 from bzrlib.bzrdir import BzrDir
 from bzrlib.errors import (NoRepositoryPresent, NotBranchError, NotLocalUrl,
                            NoWorkingTree)
index f42ae30680175d7370c0aa39625363d0730ee86a..986d7c0a9c137ecfa792f1934eb1de6406a5dbba 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Subversion repository tests."""
+
 from bzrlib.branch import Branch
 from bzrlib.bzrdir import BzrDir
 from bzrlib.errors import NoSuchRevision, UninitializableFormat
index 568af3e4164345254eb25a2e5a5fd224e3cb5a2b..7b98331cc5c22d612b52e2c7292a3fe0b7745b2c 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Branching scheme tests."""
+
 from bzrlib.errors import NotBranchError
 
 from bzrlib.tests import TestCase
index c8d511787dfb496be235ed27bc36b20be9fc6411..d19cb288214a9e13b4320458644225918bbde7bc 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Subversion transport tests."""
+
 from tests import TestCaseWithSubversionRepository
 from bzrlib.errors import NotBranchError, NoSuchFile, FileExists
 from transport import SvnRaTransport, bzr_to_svn_url
index 54cb956718604eff055f29ea808dcf31243c1b4a..b9b30a9fb6cf551738b5aed828366b6cb14ba40d 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Basis and revision tree tests."""
+
 from bzrlib.workingtree import WorkingTree
 
 from tree import SvnBasisTree
index 8bfbd7f6082884c6ddecbe4bcef61e48b78dc29d..ede51d0f8f6dcd1e7005146bc59e70b46287491a 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Mapping upgrade tests."""
+
 from bzrlib.bzrdir import BzrDir
 from bzrlib.errors import InvalidRevisionId
 from bzrlib.repository import Repository
index aa43e90c299363859e9e5e49416e070908e82adb..06292c86c967070aff091b8db8fff76cbb1d4c19 100644 (file)
@@ -14,6 +14,8 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
+"""Working tree tests."""
+
 from bzrlib.bzrdir import BzrDir
 from bzrlib.errors import NoSuchFile
 from bzrlib.inventory import Inventory
index 2498d16e7ed1d3191200f73e3ac69bb1b56a7081..03e214d927b52f67f7f8673afa84c697a49a8215 100644 (file)
@@ -13,6 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Simple transport for accessing Subversion smart servers."""
 
 from bzrlib.errors import (NoSuchFile, NotBranchError, TransportNotPossible, 
                            FileExists)
diff --git a/tree.py b/tree.py
index c7d837f23ef3250d2ced3bdd7362454f64477221..1a5873b700750edc2ba74c58bf1121d1ca1913c8 100644 (file)
--- a/tree.py
+++ b/tree.py
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+"""Access to stored Subversion basis trees."""
 
 from bzrlib.inventory import Inventory
+
 import bzrlib.osutils as osutils
 from bzrlib.trace import mutter
 from bzrlib.revisiontree import RevisionTree
@@ -43,6 +45,7 @@ def apply_txdelta_handler(src_stream, target_stream, pool):
     return wrapper
 
 class SvnRevisionTree(RevisionTree):
+    """A tree that existed in a historical Subversion revision."""
     def __init__(self, repository, revision_id):
         self._repository = repository
         self._revision_id = revision_id
@@ -66,6 +69,7 @@ class SvnRevisionTree(RevisionTree):
 
 
 class TreeBuildEditor(svn.delta.Editor):
+    """Builds a tree given Subversion tree transform calls."""
     def __init__(self, tree, pool):
         self.tree = tree
         self.repository = tree._repository
index a38f3eb9b59c174cf97bb0fbf9976c14bba4e764..1e826faa93614adbf3bf093b359a24b52b19d5c7 100644 (file)
@@ -13,7 +13,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-#
+"""Upgrading revisions made with older versions of the mapping."""
 
 from bzrlib.config import Config
 from bzrlib.errors import BzrError, InvalidRevisionId
@@ -32,6 +32,7 @@ from revids import (generate_svn_revision_id, parse_svn_revision_id,
 # Usage: svn-upgrade [--allow-change] PATH REPOSITORY
 
 class UpgradeChangesContent(BzrError):
+    """Inconsistency was found upgrading the mapping of a revision."""
     _fmt = """Upgrade will change contents in revision %(revid)s."""
 
     def __init__(self, revid):