#2485: trac-admin resync crash
-----------------------------+----------------------------------------------
Reporter: anonymous | Owner: cboos
Type: defect | Status: assigned
Priority: normal | Milestone: 0.9.4
Component: version control | Version: 0.9.3
Severity: major | Resolution:
Keywords: |
-----------------------------+----------------------------------------------
Comment (by cboos):
Not illegal, but maybe not optimal either...
Please try out the following patch:
{{{
--- svn_fs.py (revision 2746)
+++ svn_fs.py (working copy)
@@ -455,6 +455,7 @@
def get_changes(self):
pool = Pool(self.pool)
+ tmp = Pool(pool)
root = fs.revision_root(self.fs_ptr, self.rev, pool())
editor = repos.RevisionChangeCollector(self.fs_ptr, self.rev,
pool())
e_ptr, e_baton = delta.make_editor(editor, pool())
@@ -465,6 +466,7 @@
changes = []
revroots = {}
for path, change in editor.changes.items():
+ tmp.clear()
if not self.authz.has_permission(path):
# FIXME: what about base_path?
continue
@@ -488,8 +490,8 @@
else:
b_root = fs.revision_root(self.fs_ptr, b_rev, pool())
revroots[b_rev] = b_root
- change.base_path = fs.node_created_path(b_root, b_path,
pool())
- change.base_rev = fs.node_created_rev(b_root, b_path,
pool())
+ change.base_path = fs.node_created_path(b_root, b_path,
tmp())
+ change.base_rev = fs.node_created_rev(b_root, b_path,
tmp())
kind = _kindmap[change.item_kind]
path = path[len(self.scope) - 1:]
base_path = _scoped_path(self.scope, change.base_path)
}}}
--
Ticket URL: <http://projects.edgewall.com/trac/ticket/2485>
The Trac Project <http://trac.edgewall.com/>
_______________________________________________
Trac-Tickets mailing list
[email protected]
http://lists.edgewall.com/mailman/listinfo/trac-tickets