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