Add another test, update docs.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 26 Jul 2007 23:32:54 +0000 (00:32 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 26 Jul 2007 23:32:54 +0000 (00:32 +0100)
README
mapping.txt
tests/test_push.py

diff --git a/README b/README
index 372f4759825c7ddff366201b59fdcc7bc9e13d4e..04bc825487962b25d78893f738b4f9439c26dbb8 100644 (file)
--- a/README
+++ b/README
@@ -26,7 +26,7 @@ need to have the pysqlite package installed.
 
 In order to be able to use the ``svn-upgrade`` command (for those 
 who used earlier versions of bzr-svn), you will need the bzr-rebase 
-plugin (http://people.samba.org/bzr/jelmer/bzr-rebase/trunk).
+plugin (http://bazaar-vcs.org/BzrSvn).
 
 ========
 Features
index 4f0776da230525795663e427a5629deb56eb727e..51eb5f4ce969beee645c3b447232cc6d02212d69 100644 (file)
@@ -1,12 +1,7 @@
 This document specifies mapping between Subversion and Bazaar semantics.
 
 Revision: 3
-Jelmer Vernooij <jelmer@samba.org>, June 2006.
-Updated October 2006.
-Updated December 2006.
-Updated January 2007.
-Updated February 2007.
-Updated June 2007.
+Written by Jelmer Vernooij <jelmer@samba.org>
 
 ============
 Branch paths
@@ -33,15 +28,6 @@ implementation. At the moment, the following branching schemes are available:
        part of the scheme name).
 
 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.
-
-- Assume NoBranchingScheme
-
-Branching scheme names can not contain colons.
 
 ============
 Revision ids
@@ -126,8 +112,8 @@ Neither the original nor the target file id may occur more than once.
 The entries are sorted by revnum (highest revnum last). Within a specific 
 revnum, the order is not specified.
 
-File id mappings can only change if something about the metadata of a file changed: it 
-is in no way related to the contents of that file.
+File id mappings can only change if something about the metadata of a file 
+changed: it is in no way related to the contents of that file.
 
 If a file is being replaced by a copy of itself in an older revision it will 
 receive a new file id.
@@ -167,8 +153,8 @@ can be copied, moved or merged from other branches, which can result in partial
 that bzr doesn't support at the moment.
 
 Whenever a Bazaar commit to Subversion has more than one parent (merges two 
-revisions), it will add a line to the 'bzr:ancestry:vX-SCHEME' property set on the 
-branch path. The format of these lines is:
+revisions), it will add a line to the 'bzr:ancestry:vX-SCHEME' property set on 
+the branch path. The format of these lines is:
 
 ([\tPARENT-REV-ID]+)\n
 
@@ -201,7 +187,8 @@ by version 0.9 of the bundle format.
 Signatures
 ==========
 
-NEXT VERSION: GPG Signatures for commits will be stored in the SVN revision property 'bzr:gpg-signature'. 
+NEXT VERSION: GPG Signatures for commits will be stored in the SVN revision 
+property 'bzr:gpg-signature'. 
 
 =========
 Revisions
index 37995a7aeb47dd7ea22c4af9b225c96833df5429..f9df181eab492a75cade3bb0e544aa112ee9cb69 100644 (file)
@@ -18,6 +18,7 @@ from bzrlib.branch import Branch, BranchReferenceFormat
 from bzrlib.bzrdir import BzrDir, BzrDirFormat
 from bzrlib.errors import AlreadyBranchError, DivergedBranches
 from bzrlib.inventory import Inventory
+from bzrlib.repository import Repository
 from bzrlib.tests import TestCaseWithTransport
 from bzrlib.trace import mutter
 from bzrlib.workingtree import WorkingTree
@@ -356,3 +357,24 @@ class PushNewBranchTests(TestCaseWithSubversionRepository):
         newbranch = newdir.import_branch(bzrwt.branch)
         self.assertEquals(revid2, newbranch.last_revision())
         self.assertEquals([revid1, revid2], newbranch.revision_history())
+
+    def test_multiple_part_exists(self):
+        repos_url = self.make_client("a", "dc")
+        self.build_tree({'dc/trunk/myfile': "data", 'dc/branches': None})
+        self.client_add('dc/trunk')
+        self.client_add('dc/branches')
+        self.client_commit("dc", "Message")
+        svnrepos = Repository.open(repos_url)
+        os.mkdir("c")
+        bzrdir = BzrDir.open(repos_url+"/trunk").sprout("c")
+        bzrwt = bzrdir.open_workingtree()
+        self.build_tree({'c/myfile': "Tour"})
+        revid1 = bzrwt.commit("Do a commit")
+        self.build_tree({'c/myfile': "Tour de France"})
+        revid2 = bzrwt.commit("Do a commit")
+        newdir = BzrDir.open(repos_url+"/branches/mybranch")
+        newbranch = newdir.import_branch(bzrwt.branch)
+        self.assertEquals(revid2, newbranch.last_revision())
+        self.assertEquals([
+            svnrepos.generate_revision_id(1, "trunk", "trunk0") 
+            , revid1, revid2], newbranch.revision_history())