Rev 506: Consistently treat property changes as actual changes (#122115) in file:///home/jelmer/bzr-svn/0.4/

Jelmer Vernooij jelmer at samba.org
Tue Jul 3 17:44:21 BST 2007


------------------------------------------------------------
revno: 506
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Tue 2007-07-03 18:42:54 +0200
message:
  Consistently treat property changes as actual changes (#122115)
modified:
  NEWS
  repository.py
  tests/test_fetch.py
  tests/test_logwalker.py
  tests/test_repos.py
=== modified file 'NEWS'
--- a/NEWS	2007-07-02 22:09:13 +0000
+++ b/NEWS	2007-07-03 16:42:54 +0000
@@ -28,6 +28,8 @@
 
    * Add blackbox test for svn-import with dumpfile. (#123493)
 
+   * Consistently treat property changes as actual changes (#122115)
+
   PERFORMANCE
 
    * do_update() is now used to find the contents of a directory recursively. 

=== modified file 'repository.py'
--- a/repository.py	2007-07-03 00:31:08 +0000
+++ b/repository.py	2007-07-03 16:42:54 +0000
@@ -445,6 +445,7 @@
         :return: New revision id.
         """
         assert isinstance(path, str)
+        assert isinstance(revnum, int)
 
         # Look in the cache to see if it already has a revision id
         revid = self.revmap.lookup_branch_revnum(revnum, path, scheme)
@@ -620,7 +621,7 @@
             # revision there, so yield it.
             for p in paths:
                 assert isinstance(p, str)
-                if p.startswith(branch_path+"/") or branch_path == "":
+                if p == branch_path or p.startswith(branch_path+"/") or branch_path == "":
                     yield (branch_path, revnum)
                     yielded = True
                     break

=== modified file 'tests/test_fetch.py'
--- a/tests/test_fetch.py	2007-06-24 21:43:28 +0000
+++ b/tests/test_fetch.py	2007-07-03 16:42:54 +0000
@@ -1306,6 +1306,50 @@
         rev = newrepos.get_revision(oldrepos.generate_revision_id(1, "", "none"))
         self.assertEqual([oldrepos.generate_revision_id(0, "", "none")], rev.parent_ids)
 
+    def test_fetch_property_change_only(self):
+        repos_url = self.make_client('d', 'dc')
+        self.build_tree({'dc/trunk/bla': "data"})
+        self.client_add("dc/trunk")
+        self.client_commit("dc", "My Message")
+        self.client_set_prop("dc", "some:property", "some data\n")
+        self.client_commit("dc", "My 3")
+        self.client_set_prop("dc", "some2:property", "some data\n")
+        self.client_commit("dc", "My 2")
+        self.client_set_prop("dc", "some:property", "some data\n")
+        self.client_commit("dc", "My 4")
+        oldrepos = Repository.open("svn+"+repos_url)
+        dir = BzrDir.create("f", format.get_rich_root_format())
+        newrepos = dir.create_repository()
+        oldrepos.copy_content_into(newrepos)
+        self.assertEquals([
+            oldrepos.generate_revision_id(0, "", "none"),
+            oldrepos.generate_revision_id(1, "", "none"),
+            oldrepos.generate_revision_id(2, "", "none"),
+            oldrepos.generate_revision_id(3, "", "none"),
+            ], newrepos.all_revision_ids())
+
+    def test_fetch_property_change_only_trunk(self):
+        repos_url = self.make_client('d', 'dc')
+        self.build_tree({'dc/trunk/bla': "data"})
+        self.client_add("dc/trunk")
+        self.client_commit("dc", "My Message")
+        self.client_set_prop("dc/trunk", "some:property", "some data\n")
+        self.client_commit("dc", "My 3")
+        self.client_set_prop("dc/trunk", "some2:property", "some data\n")
+        self.client_commit("dc", "My 2")
+        self.client_set_prop("dc/trunk", "some:property", "some data\n")
+        self.client_commit("dc", "My 4")
+        oldrepos = Repository.open("svn+"+repos_url)
+        oldrepos.set_branching_scheme(TrunkBranchingScheme())
+        dir = BzrDir.create("f", format.get_rich_root_format())
+        newrepos = dir.create_repository()
+        oldrepos.copy_content_into(newrepos)
+        self.assertEquals([
+            oldrepos.generate_revision_id(1, "trunk", "trunk0"),
+            oldrepos.generate_revision_id(2, "trunk", "trunk0"),
+            oldrepos.generate_revision_id(3, "trunk", "trunk0"),
+            ], newrepos.all_revision_ids())
+
     def test_fetch_crosscopy(self):
         repos_url = self.make_client('d', 'dc')
         self.build_tree({'dc/trunk/adir/afile': "data", 

=== modified file 'tests/test_logwalker.py'
--- a/tests/test_logwalker.py	2007-05-17 16:52:31 +0000
+++ b/tests/test_logwalker.py	2007-07-03 16:42:54 +0000
@@ -516,3 +516,19 @@
                           'trunk/data/fg', 'trunk/data/fg/f1', 'trunk/db',
                           'trunk/db/f1', 'trunk/db/f2']), 
                 set(walker.find_children("trunk", 3)))
+
+    def test_fetch_property_change_only_trunk(self):
+        repos_url = self.make_client('d', 'dc')
+        self.build_tree({'dc/trunk/bla': "data"})
+        self.client_add("dc/trunk")
+        self.client_commit("dc", "My Message")
+        self.client_set_prop("dc/trunk", "some:property", "some data\n")
+        self.client_commit("dc", "My 3")
+        self.client_set_prop("dc/trunk", "some2:property", "some data\n")
+        self.client_commit("dc", "My 2")
+        self.client_set_prop("dc/trunk", "some:property", "some data\n")
+        self.client_commit("dc", "My 4")
+        walker = logwalker.LogWalker(transport=SvnRaTransport(repos_url))
+        self.assertEquals({'trunk': ('M', None, -1)}, walker.get_revision_paths(3))
+
+

=== modified file 'tests/test_repos.py'
--- a/tests/test_repos.py	2007-07-02 22:09:13 +0000
+++ b/tests/test_repos.py	2007-07-03 16:42:54 +0000
@@ -807,6 +807,20 @@
                 repos.generate_revision_id(1, "", "none"))
         self.assertEqual({"test": "bla"}, renames)
 
+    def test_fetch_property_change_only_trunk(self):
+        repos_url = self.make_client('d', 'dc')
+        self.build_tree({'dc/trunk/bla': "data"})
+        self.client_add("dc/trunk")
+        self.client_commit("dc", "My Message")
+        self.client_set_prop("dc/trunk", "some:property", "some data\n")
+        self.client_commit("dc", "My 3")
+        self.client_set_prop("dc/trunk", "some2:property", "some data\n")
+        self.client_commit("dc", "My 2")
+        self.client_set_prop("dc/trunk", "some:property", "some other data\n")
+        self.client_commit("dc", "My 4")
+        oldrepos = Repository.open("svn+"+repos_url)
+        self.assertEquals([('trunk', 3), ('trunk', 2), ('trunk', 1)], list(oldrepos.follow_branch("trunk", 3, TrunkBranchingScheme())))
+
     def test_control_code_msg(self):
         repos_url = self.make_client('d', 'dc')
 
@@ -1132,3 +1146,4 @@
                 lambda: parse_revid_property("2 "))
 
 
+




More information about the bazaar-commits mailing list