Rev 445: Try to fix a bug found by mwh's test. in sftp://people.samba.org/data/bzr/jelmer/bzr-svn/bzr.dev/
Jelmer Vernooij
jelmer at samba.org
Wed May 2 01:53:15 BST 2007
At sftp://people.samba.org/data/bzr/jelmer/bzr-svn/bzr.dev/
------------------------------------------------------------
revno: 445
revision-id: jelmer at samba.org-20070502005238-juqk20xhks8t6501
parent: jelmer at samba.org-20070415161553-4s5vprta60mch70r
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: main
timestamp: Wed 2007-05-02 02:52:38 +0200
message:
Try to fix a bug found by mwh's test.
modified:
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
repository.py repository.py-20060306123302-1f8c5069b3fe0265
tests/test_commit.py test_commit.py-20060624213521-l5kcufywkh9mnilk-1
tests/test_repos.py test_repos.py-20060508151940-ddc49a59257ca712
=== modified file 'fetch.py'
--- a/fetch.py 2007-03-25 19:50:45 +0000
+++ b/fetch.py 2007-05-02 00:52:38 +0000
@@ -321,6 +321,7 @@
parents = {}
for (branch, revnum) in self.source.follow_history(
self.source._latest_revnum):
+ mutter('br, revnum: %r, %r' % (branch, revnum))
revid = self.source.generate_revision_id(revnum, branch)
parents[revid] = self.source._mainline_revision_parent(branch,
revnum)
=== modified file 'repository.py'
--- a/repository.py 2007-03-25 18:41:40 +0000
+++ b/repository.py 2007-05-02 00:52:38 +0000
@@ -98,7 +98,8 @@
assert isinstance(revnum, int)
assert isinstance(path, basestring)
assert revnum >= 0
- assert revnum > 0 or path == ""
+ assert revnum > 0 or path == "", \
+ "Trying to generate revid for (%r,%r)" % (path, revnum)
return "%s%s:%s:%s:%d" % (REVISION_ID_PREFIX, scheme, uuid, \
escape_svn_path(path.strip("/")), revnum)
=== modified file 'tests/test_commit.py'
--- a/tests/test_commit.py 2007-04-15 16:15:53 +0000
+++ b/tests/test_commit.py 2007-05-02 00:52:38 +0000
@@ -101,31 +101,31 @@
self.client_update('sc')
self.build_tree({'sc/de/foo':'data', 'sc/de/bar':'DATA'})
self.client_add('sc/de')
- self.client_commit('sc', 'blah')
+ self.client_commit('sc', 'blah') #1
self.client_update('sc')
os.mkdir('sc/de/trunk')
self.client_add('sc/de/trunk')
- mv(('sc/de/foo', 'sc/de/trunk'), ('sc/de/bar', 'sc/de/trunk'))
- mv(('sc/de', 'sc/pyd'))
+ mv(('sc/de/foo', 'sc/de/trunk'), ('sc/de/bar', 'sc/de/trunk')) #2
+ mv(('sc/de', 'sc/pyd')) #3
self.client_delete('sc/pyd/trunk/foo')
- self.client_commit('sc', '.')
+ self.client_commit('sc', '.') #4
self.client_update('sc')
self.make_checkout(repo + '/pyd/trunk', 'pyd')
- assert open('pyd/bar').read() == 'DATA'
+ self.assertEqual("DATA", open('pyd/bar').read())
olddir = BzrDir.open("pyd")
os.mkdir('bc')
newdir = olddir.sprout("bc")
newdir.open_branch().pull(olddir.open_branch())
wt = newdir.open_workingtree()
- assert open('bc/bar').read() == 'DATA'
+ self.assertEqual("DATA", open('bc/bar').read())
open('bc/bar', 'w').write('data')
wt.commit(message="Commit from Bzr")
olddir.open_branch().pull(newdir.open_branch())
self.client_update('pyd')
- assert open('pyd/bar').read() == 'data'
+ self.assertEqual("data", open('pyd/bar').read())
class TestPush(TestCaseWithSubversionRepository):
=== modified file 'tests/test_repos.py'
--- a/tests/test_repos.py 2007-03-25 18:41:40 +0000
+++ b/tests/test_repos.py 2007-05-02 00:52:38 +0000
@@ -137,6 +137,21 @@
repos.generate_revision_id(1, "trunk")],
list(repos.all_revision_ids()))
+ def test_follow_history_empty(self):
+ repos_url = self.make_client("a", "dc")
+ self.assertEqual([('', 0)],
+ list(Repository.open(repos_url).follow_history(0)))
+
+ def test_follow_history_empty_branch(self):
+ repos_url = self.make_client("a", "dc")
+ self.build_tree({'dc/trunk/afile': "data", "dc/branches": None})
+ self.client_add("dc/trunk")
+ self.client_add("dc/branches")
+ self.client_commit("dc", "My Message")
+ repos = Repository.open(repos_url)
+ repos.set_branching_scheme(TrunkBranchingScheme())
+ self.assertEqual([('trunk', 1)], list(repos.follow_history(1)))
+
def test_follow_history_follow(self):
repos_url = self.make_client("a", "dc")
self.build_tree({'dc/trunk/afile': "data", "dc/branches": None})
@@ -1985,6 +2000,50 @@
repos = Repository.open(repos_url)
repos.set_branching_scheme(NoBranchingScheme())
+ def test_mainline_revision_parent_null(self):
+ repos_url = self.make_client('d', 'dc')
+ repos = Repository.open(repos_url)
+ repos.set_branching_scheme(NoBranchingScheme())
+ self.assertEquals(None, repos._mainline_revision_parent("", 0))
+
+ def test_mainline_revision_parent_null(self):
+ repos_url = self.make_client('d', 'dc')
+ repos = Repository.open(repos_url)
+ repos.set_branching_scheme(NoBranchingScheme())
+ self.build_tree({'dc/adir/afile': "data"})
+ self.client_add("dc/adir")
+ self.client_commit("dc", "Initial commit")
+ self.assertEquals(repos.generate_revision_id(0, ""), \
+ repos._mainline_revision_parent("", 1))
+
+ def test_mainline_revision_parent_simple(self):
+ repos_url = self.make_client('d', 'dc')
+ self.build_tree({'dc/trunk/adir/afile': "data",
+ 'dc/trunk/adir/stationary': None,
+ 'dc/branches/abranch': None})
+ self.client_add("dc/trunk")
+ self.client_add("dc/branches")
+ self.client_commit("dc", "Initial commit")
+ self.build_tree({'dc/trunk/adir/afile': "bla"})
+ self.client_commit("dc", "Incremental commit")
+ repos = Repository.open(repos_url)
+ repos.set_branching_scheme(TrunkBranchingScheme())
+ self.assertEquals(repos.generate_revision_id(1, "trunk"), \
+ repos._mainline_revision_parent("trunk", 2))
+
+ def test_mainline_revision_parent_moved(self):
+ repos_url = self.make_client('d', 'dc')
+ self.build_tree({'dc/py/trunk/adir/afile': "data",
+ 'dc/py/trunk/adir/stationary': None})
+ self.client_add("dc/py")
+ self.client_commit("dc", "Initial commit")
+ self.client_copy("dc/py", "dc/de")
+ self.client_commit("dc", "Incremental commit")
+ repos = Repository.open(repos_url)
+ repos.set_branching_scheme(TrunkBranchingScheme())
+ self.assertEquals(repos.generate_revision_id(1, "py/trunk"), \
+ repos._mainline_revision_parent("de/trunk", 2))
+
def test_fetch_crosscopy(self):
repos_url = self.make_client('d', 'dc')
self.build_tree({'dc/trunk/adir/afile': "data",
More information about the bazaar-commits
mailing list