[#4955] ticket:181 fixed recursion
diff --git a/Allura/allura/model/repo.py b/Allura/allura/model/repo.py
index 2cbae4b..e07de6e 100644
--- a/Allura/allura/model/repo.py
+++ b/Allura/allura/model/repo.py
@@ -616,7 +616,8 @@
else:
ci_parents[oid] = run.parent_commit_ids
for oid in run.parent_commit_ids:
- _visit(oid)
+ if commit_id!=oid:
+ _visit(oid)
def _gen_ids(commit_ids, skip, limit):
# Traverse the graph in topo order, yielding commit IDs
diff --git a/Allura/allura/model/repo_refresh.py b/Allura/allura/model/repo_refresh.py
index 87e436e..12bf20c 100644
--- a/Allura/allura/model/repo_refresh.py
+++ b/Allura/allura/model/repo_refresh.py
@@ -304,7 +304,12 @@
for xx in _walk_tree(tree_index[x.id], tree_index):
yield xx
- rhs_tree_ids = TreesDoc.m.get(_id=rhs_ci._id).tree_ids
+ treedoc = TreesDoc.m.get(_id=rhs_ci._id)
+ if treedoc:
+ rhs_tree_ids = treedoc.tree_ids
+ else:
+ return tree_cache
+
if rhs_ci.parent_ids:
lhs_ci = CommitDoc.m.get(_id=rhs_ci.parent_ids[0])
else: