Rev 371: Actually use fileid overrides when available. in http://people.samba.org/bzr/jelmer/bzr-svn/bzr.dev
Jelmer Vernooij
jelmer at samba.org
Wed Jan 3 10:48:04 GMT 2007
------------------------------------------------------------
revno: 371
revision-id: jelmer at samba.org-20070103104612-w2honujsz10jww2s
parent: jelmer at samba.org-20070103071312-9ncpsbv28tn3w19p
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: main
timestamp: Wed 2007-01-03 11:46:12 +0100
message:
Actually use fileid overrides when available.
modified:
TODO todo-20060729211917-2kpobww0zyvvo0j2-1
fileids.py fileids.py-20060714013623-u5iiyqqnko11grcf-1
tests/test_repos.py test_repos.py-20060508151940-ddc49a59257ca712
=== modified file 'TODO'
--- a/TODO 2007-01-02 19:17:26 +0000
+++ b/TODO 2007-01-03 10:46:12 +0000
@@ -1,4 +1,5 @@
- better tests for get_fileid_map()
+ - better tests for get_local_changes()
- make scheme name part of revision id
- fix commits in checkouts somehow
- fix autorealm repository
=== modified file 'fileids.py'
--- a/fileids.py 2007-01-03 07:13:12 +0000
+++ b/fileids.py 2007-01-03 10:46:12 +0000
@@ -130,7 +130,7 @@
uuid, find_children)
if find_children is not None:
def get_children(path, revid):
- (_, bp, revnum) = parse_svn_revision_id(revid)
+ (bp, revnum) = self.repos.parse_revision_id(revid)
for p in find_children(bp+"/"+path, revnum):
yield self.repos.scheme.unprefix(p)[1]
else:
@@ -138,8 +138,12 @@
revid = generate_svn_revision_id(uuid, revnum, branch)
- return self._apply_changes(lambda x: generate_file_id(revid, x),
- changes, get_children)
+ def new_file_id(x):
+ if renames.has_key(x):
+ return renames[x]
+ return generate_file_id(revid, x)
+
+ return self._apply_changes(new_file_id, changes, get_children)
def get_map(self, uuid, revnum, branch, renames_cb):
"""Make sure the map is up to date until revnum."""
@@ -173,7 +177,7 @@
pb.update('generating file id map', i, len(todo))
def find_children(path, revid):
- (_, bp, revnum) = parse_svn_revision_id(revid)
+ (bp, revnum) = self.repos.parse_revision_id(revid)
for p in self.repos._log.find_children(bp+"/"+path, revnum):
yield self.repos.scheme.unprefix(p)[1]
@@ -192,6 +196,7 @@
revmap[p] = map[p][0]
map.update(dict([(x, (revmap[x], revid)) for x in revmap]))
+
# Mark all parent paths as changed
for p in revmap:
parts = p.split("/")
=== modified file 'tests/test_repos.py'
--- a/tests/test_repos.py 2007-01-03 07:13:12 +0000
+++ b/tests/test_repos.py 2007-01-03 10:46:12 +0000
@@ -592,6 +592,20 @@
renames = repos.revision_fileid_renames("svn-v%d:1@%s-" % (MAPPING_VERSION, repos.uuid))
self.assertEqual({"test": "bla"}, renames)
+ def test_fetch_fileid_renames(self):
+ repos_url = self.make_client('d', 'dc')
+ self.build_tree({'dc/test': "data"})
+ self.client_add("dc/test")
+ self.client_set_prop("dc", "bzr:file-ids", "test\tbla\n")
+ self.client_commit("dc", "Msg")
+
+ oldrepos = Repository.open(repos_url)
+ dir = BzrDir.create("f")
+ newrepos = dir.create_repository()
+ oldrepos.copy_content_into(newrepos)
+ self.assertEqual("bla", newrepos.get_inventory(
+ "svn-v%d:1@%s-" % (MAPPING_VERSION, oldrepos.uuid)).path2id("test"))
+
def test_fetch_trunk1(self):
repos_url = self.make_client('d', 'dc')
self.build_tree({'dc/proj1/trunk/file': "data"})
More information about the bazaar-commits
mailing list