Merge lp:~gagern/trac-bzr/bug194277 into lp:trac-bzr

Proposed by Martin von Gagern
Status: Merged
Merged at revision: not available
Proposed branch: lp:~gagern/trac-bzr/bug194277
Merge into: lp:trac-bzr
Diff against target: 96 lines (+9/-40)
1 file modified
tracbzr/backend.py (+9/-40)
To merge this branch: bzr merge lp:~gagern/trac-bzr/bug194277
Reviewer Review Type Date Requested Status
Trac-bzr-team Pending
Review via email: mp+15323@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Martin von Gagern (gagern) wrote :

Quite a lot of code gone in the process. Makes me wonder whether there was really that much unused code in trac-bzr, or whether I missed something. So I'd really like to see at least one Appove vote here if possible. In my opinion http://bazaar.launchpad.net/~trac-bzr-team/trac-bzr/trunk/revision/68 is the commit that renders get_change obsolete and _history_cache along with it.

lp:~gagern/trac-bzr/bug194277 updated
81. By Martin von Gagern

Merge from trunk

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tracbzr/backend.py'
2--- tracbzr/backend.py 2009-11-27 18:21:10 +0000
3+++ tracbzr/backend.py 2009-12-07 17:21:10 +0000
4@@ -567,19 +567,22 @@
5 new_branch, new_revid = self._parse_rev(new_rev)
6 old_tree = old_branch.repository.revision_tree(old_revid)
7 new_tree = new_branch.repository.revision_tree(new_revid)
8- delta = new_tree.changes_from(old_tree)
9+ prefix = self.branch_path(new_branch)
10+ subdir = new_path[len(prefix)+1:]
11+ delta = new_tree.changes_from(old_tree, specific_files=[subdir])
12 for path, file_id, kind in delta.added:
13+ path = osutils.pathjoin(prefix, path)
14 entry = new_tree.inventory[file_id]
15 node = NODE_MAP[kind](self, new_branch, new_tree, entry, path)
16- cur_path = new_tree.id2path(file_id)
17- node._history_cache[(new_revid, old_revid, file_id)] = \
18- cur_path, new_rev, versioncontrol.Changeset.ADD
19 yield None, node, node.kind, versioncontrol.Changeset.ADD
20 for path, file_id, kind in delta.removed:
21+ path = osutils.pathjoin(prefix, path)
22 entry = old_tree.inventory[file_id]
23 node = NODE_MAP[kind](self, old_branch, old_tree, entry, path)
24 yield node, None, node.kind, versioncontrol.Changeset.DELETE
25 for oldpath, newpath, file_id, kind, textmod, metamod in delta.renamed:
26+ oldpath = osutils.pathjoin(prefix, oldpath)
27+ newpath = osutils.pathjoin(prefix, newpath)
28 oldnode = NODE_MAP[kind](self, old_branch, old_tree,
29 old_tree.inventory[file_id], oldpath)
30 newnode = NODE_MAP[kind](self, new_branch, new_tree,
31@@ -591,7 +594,8 @@
32 yield oldnode, newnode, oldnode.kind, versioncontrol.Changeset.MOVE
33 for path, file_id, kind, textmod, metamod in delta.modified:
34 # Bzr won't report a changed path as a rename but trac wants that.
35- oldpath = old_tree.id2path(file_id)
36+ path = osutils.pathjoin(prefix, path)
37+ oldpath = osutils.pathjoin(prefix, old_tree.id2path(file_id))
38 oldnode = NODE_MAP[kind](self, old_branch, old_tree,
39 old_tree.inventory[file_id], oldpath)
40 newnode = NODE_MAP[kind](self, new_branch, new_tree,
41@@ -604,9 +608,6 @@
42 action = versioncontrol.Changeset.MOVE
43 else:
44 action = versioncontrol.Changeset.EDIT
45- cur_path = new_tree.id2path(file_id)
46- newnode._history_cache[(new_revid, old_revid, file_id)] = \
47- cur_path, new_rev, action
48 yield oldnode, newnode, oldnode.kind, action
49
50 def dotted_revno(self, branch, revid):
51@@ -681,7 +682,6 @@
52
53 class BzrVersionedNode(BzrNode):
54
55- _history_cache = {}
56 _diff_map = {
57 'modified': versioncontrol.Changeset.EDIT,
58 'unchanged': versioncontrol.Changeset.EDIT,
59@@ -832,37 +832,6 @@
60 current_revid = previous_revid
61 current_tree = previous_tree
62
63-
64- def get_change(self, revision, previous_revision, file_id):
65- key = (revision, previous_revision, file_id)
66- if key not in self._history_cache or False:
67- self._history_cache[key] = self.calculate_history(revision,
68- previous_revision, file_id)
69- return self._history_cache[key]
70-
71- def calculate_history(self, revision, previous_revision, file_id):
72- cache = self.bzr_repo.get_branch_cache(self.branch)
73- tree = cache.revision_tree(revision)
74- current_entry = tree.inventory[file_id]
75- current_path = tree.id2path(file_id)
76- if previous_revision not in (None, NULL_REVISION):
77- previous_tree = cache.revision_tree(previous_revision)
78- previous_entry = previous_tree.inventory[file_id]
79- else:
80- previous_entry = None
81- # We should only get revisions in the ancestry for which
82- # we exist, so this should succeed..
83- return self.compare_entries(current_path, current_entry,
84- previous_entry)
85-
86- def compare_entries(self, current_path, current_entry, previous_entry):
87- diff = current_entry.describe_change(previous_entry, current_entry)
88- rev = self.bzr_repo.string_rev(self.branch, current_entry.revision)
89- try:
90- return current_path, rev, self._diff_map[diff]
91- except KeyError:
92- raise Exception('unknown describe_change %r' % (diff,))
93-
94 def get_content_revision(self):
95 """For non-directory nodes, the content was last changed here."""
96 return self.entry.revision

Subscribers

People subscribed via source and target branches