Rev 454: Merge documentation improvements. in http://people.samba.org/bzr/jelmer/bzr-svn/bzr.dev
Jelmer Vernooij
jelmer at samba.org
Thu May 17 17:52:35 BST 2007
At http://people.samba.org/bzr/jelmer/bzr-svn/bzr.dev
------------------------------------------------------------
revno: 454
revision-id: jelmer at samba.org-20070517165231-jhmgh86gq5pzifuu
parent: jelmer at samba.org-20070516133028-ykjexckioosx0vtn
parent: jelmer at samba.org-20070517164947-xfgirmo8bkdaf1g3
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: main
timestamp: Thu 2007-05-17 17:52:31 +0100
message:
Merge documentation improvements.
modified:
README README-20051120210643-bd274a2fef9aed6a
TODO todo-20060729211917-2kpobww0zyvvo0j2-1
branch.py svnbranch.py-20051017135706-11c749eb0dab04a7
branchprops.py branchprops.py-20061223204623-80lvm7pjrpsgk0dd-1
checkout.py workingtree.py-20060306120941-b083cb0fdd4a69de
commit.py commit.py-20060607190346-qvq128wgfubhhgm2-1
convert.py svn2bzr.py-20051018015439-cb4563bff29e632d
errors.py errors.py-20061226172623-w1sbj8ynpo0eojqp-1
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
fileids.py fileids.py-20060714013623-u5iiyqqnko11grcf-1
format.py format.py-20060406233823-b6fa009fe35dfde7
logwalker.py logwalker.py-20060621215743-c13fhfnyzh1xzwh2-1
mapping.txt mapping.txt-20060625151311-9ghaqrm71ajq593n-1
repository.py repository.py-20060306123302-1f8c5069b3fe0265
scheme.py scheme.py-20060516195850-95181aae6b272f9e
tests/__init__.py __init__.py-20060508151940-e9f4d914801a2535
tests/test_blackbox.py test_blackbox.py-20070325150839-d10llf8arptpcfl6-1
tests/test_branch.py test_branch.py-20060508162215-74ffeb5d608f8e20
tests/test_branchprops.py test_branchprops.py-20061223210444-04xf5224zcg69m3w-1
tests/test_checkout.py test_checkout.py-20070101154110-eevkc29qj0q7udz5-1
tests/test_commit.py test_commit.py-20060624213521-l5kcufywkh9mnilk-1
tests/test_convert.py test_convert.py-20060705203611-b1l0bapeku6foco0-1
tests/test_fileids.py test_fileids.py-20060622131341-19gyrlgqy8yl2od5-1
tests/test_logwalker.py test_logwalker.py-20060622141944-pkocc3rj8g62ukbi-1
tests/test_radir.py test_radir.py-20061231173434-31utf9o4byu7wktm-1
tests/test_repos.py test_repos.py-20060508151940-ddc49a59257ca712
tests/test_scheme.py test_scheme.py-20060621221855-va2xabhlxpmc9llx-1
tests/test_transport.py test_transport.py-20060621232111-xh7xvoblzsrgj79t-1
tests/test_tree.py test_tree.py-20070103204350-pr8nupes7e5sd2wr-1
tests/test_upgrade.py test_upgrade.py-20070106170128-64zt3eqggg4tng1c-1
tests/test_workingtree.py test_workingtree.py-20060622191524-0di7bc3q1ckdbybb-1
transport.py transport.py-20060406231150-b3472d06b3a0818d
tree.py tree.py-20060624222557-dudlwqcmkf22lt2s-1
upgrade.py upgrade.py-20070106192108-0rakplee2lzah4gs-1
------------------------------------------------------------
revno: 402.1.50
merged: jelmer at samba.org-20070517164947-xfgirmo8bkdaf1g3
parent: jelmer at samba.org-20070516182612-ax0t4hcgd8jp0eww
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.3
timestamp: Thu 2007-05-17 17:49:47 +0100
message:
Add some documentation.
------------------------------------------------------------
revno: 402.1.49
merged: jelmer at samba.org-20070516182612-ax0t4hcgd8jp0eww
parent: jelmer at samba.org-20070516181831-j2ep0mpdhgmxv0eg
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.3
timestamp: Wed 2007-05-16 19:26:12 +0100
message:
Convert mapping text to LaTeX.
------------------------------------------------------------
revno: 402.1.48
merged: jelmer at samba.org-20070516181831-j2ep0mpdhgmxv0eg
parent: jelmer at samba.org-20070516105310-6ebfp4439v18qfqg
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.3
timestamp: Wed 2007-05-16 19:18:31 +0100
message:
Convert README to rst.
=== modified file 'README'
--- a/README 2007-02-01 14:11:05 +0000
+++ b/README 2007-05-17 16:52:31 +0000
@@ -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 @@
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.
-
- 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).
+- 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 ==
+- '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'
+- 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.
+- 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:mime-type'
-
- * `svn:eol-style'
-
- * `svn:keywords'. Requires keywords support in Bazaar. Spec at
- https://launchpad.net/products/bzr/+spec/bzr-keyword-expansion
+- '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.
+- 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
+ 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.
=== modified file 'TODO'
--- a/TODO 2007-04-15 16:15:53 +0000
+++ b/TODO 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'branch.py'
--- a/branch.py 2007-03-25 18:41:40 +0000
+++ b/branch.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'branchprops.py'
--- a/branchprops.py 2007-03-25 14:20:08 +0000
+++ b/branchprops.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'checkout.py'
--- a/checkout.py 2007-05-16 13:30:28 +0000
+++ b/checkout.py 2007-05-17 16:52:31 +0000
@@ -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
@@ -56,8 +57,7 @@
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
@@ -598,6 +598,7 @@
class SvnWorkingTreeFormat(WorkingTreeFormat):
+ """Subversion working copy format."""
def get_format_description(self):
return "Subversion Working Copy"
=== modified file 'commit.py'
--- a/commit.py 2007-03-25 19:50:45 +0000
+++ b/commit.py 2007-05-17 16:52:31 +0000
@@ -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
@@ -377,6 +378,19 @@
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)
=== modified file 'convert.py'
--- a/convert.py 2007-04-15 16:15:53 +0000
+++ b/convert.py 2007-05-17 16:52:31 +0000
@@ -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 @@
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)
=== modified file 'errors.py'
--- a/errors.py 2007-05-05 14:16:53 +0000
+++ b/errors.py 2007-05-17 16:52:31 +0000
@@ -13,12 +13,14 @@
# 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):
=== modified file 'fetch.py'
--- a/fetch.py 2007-05-02 00:52:38 +0000
+++ b/fetch.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'fileids.py'
--- a/fileids.py 2007-03-25 19:50:45 +0000
+++ b/fileids.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'format.py'
--- a/format.py 2007-05-16 13:30:28 +0000
+++ b/format.py 2007-05-17 16:52:31 +0000
@@ -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 SvnFormat(BzrDirFormat):
+ """Format for the Subversion smart server."""
_lock_class = TransportLock
@classmethod
=== modified file 'logwalker.py'
--- a/logwalker.py 2007-03-25 14:20:08 +0000
+++ b/logwalker.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'mapping.txt'
--- a/mapping.txt 2007-05-16 09:19:32 +0000
+++ b/mapping.txt 2007-05-17 16:52:31 +0000
@@ -6,37 +6,41 @@
Updated December 2006.
Updated January 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)
-
- * 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).
+- 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.
+
+- 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.
@@ -46,9 +50,7 @@
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
@@ -62,16 +64,16 @@
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``
A (path,revnum) tuple is valid if:
* path is valid according to the branching scheme
* 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
@@ -79,7 +81,7 @@
File ids use the following syntax:
-<REVNO>@<UUID>:<BRANCHPATH>:<PATH>
+``<REVNO>@<UUID>:<BRANCHPATH>:<PATH>``
Since / is forbidden in file ids, all characters are urlencoded.
@@ -87,7 +89,7 @@
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
@@ -120,7 +122,9 @@
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.
@@ -135,7 +139,9 @@
"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
@@ -161,19 +167,25 @@
'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.
@@ -186,3 +198,8 @@
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 at samba.org>
=== modified file 'repository.py'
--- a/repository.py 2007-05-16 13:28:03 +0000
+++ b/repository.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'scheme.py'
--- a/scheme.py 2007-03-25 18:41:40 +0000
+++ b/scheme.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/__init__.py'
--- a/tests/__init__.py 2007-03-28 12:16:02 +0000
+++ b/tests/__init__.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_blackbox.py'
--- a/tests/test_blackbox.py 2007-03-25 15:15:08 +0000
+++ b/tests/test_blackbox.py 2007-05-17 16:49:47 +0000
@@ -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
=== modified file 'tests/test_branch.py'
--- a/tests/test_branch.py 2007-03-28 04:00:14 +0000
+++ b/tests/test_branch.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_branchprops.py'
--- a/tests/test_branchprops.py 2007-03-25 14:41:44 +0000
+++ b/tests/test_branchprops.py 2007-05-17 16:49:47 +0000
@@ -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
=== modified file 'tests/test_checkout.py'
--- a/tests/test_checkout.py 2007-04-15 16:15:53 +0000
+++ b/tests/test_checkout.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_commit.py'
--- a/tests/test_commit.py 2007-05-02 00:52:38 +0000
+++ b/tests/test_commit.py 2007-05-17 16:52:31 +0000
@@ -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 PullResult
from bzrlib.bzrdir import BzrDir
from bzrlib.errors import DivergedBranches
=== modified file 'tests/test_convert.py'
--- a/tests/test_convert.py 2007-04-15 16:15:53 +0000
+++ b/tests/test_convert.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_fileids.py'
--- a/tests/test_fileids.py 2007-03-25 18:41:40 +0000
+++ b/tests/test_fileids.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_logwalker.py'
--- a/tests/test_logwalker.py 2007-05-16 09:11:51 +0000
+++ b/tests/test_logwalker.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_radir.py'
--- a/tests/test_radir.py 2007-05-16 13:30:28 +0000
+++ b/tests/test_radir.py 2007-05-17 16:52:31 +0000
@@ -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)
=== modified file 'tests/test_repos.py'
--- a/tests/test_repos.py 2007-05-16 13:28:03 +0000
+++ b/tests/test_repos.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_scheme.py'
--- a/tests/test_scheme.py 2007-03-15 16:40:04 +0000
+++ b/tests/test_scheme.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_transport.py'
--- a/tests/test_transport.py 2007-03-25 18:41:40 +0000
+++ b/tests/test_transport.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_tree.py'
--- a/tests/test_tree.py 2007-03-28 04:00:14 +0000
+++ b/tests/test_tree.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_upgrade.py'
--- a/tests/test_upgrade.py 2007-03-25 18:41:40 +0000
+++ b/tests/test_upgrade.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'tests/test_workingtree.py'
--- a/tests/test_workingtree.py 2007-05-07 16:37:04 +0000
+++ b/tests/test_workingtree.py 2007-05-17 16:52:31 +0000
@@ -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
=== modified file 'transport.py'
--- a/transport.py 2007-03-25 18:41:40 +0000
+++ b/transport.py 2007-05-17 16:52:31 +0000
@@ -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)
=== modified file 'tree.py'
--- a/tree.py 2007-03-25 18:41:40 +0000
+++ b/tree.py 2007-05-17 16:52:31 +0000
@@ -13,8 +13,10 @@
# 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 @@
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 TreeBuildEditor(svn.delta.Editor):
+ """Builds a tree given Subversion tree transform calls."""
def __init__(self, tree, pool):
self.tree = tree
self.repository = tree._repository
=== modified file 'upgrade.py'
--- a/upgrade.py 2007-03-25 18:41:40 +0000
+++ b/upgrade.py 2007-05-17 16:52:31 +0000
@@ -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 @@
# 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):
More information about the bazaar-commits
mailing list