--- a/ForgeHg/forgehg/model/hg.py
+++ b/ForgeHg/forgehg/model/hg.py
@@ -155,7 +155,7 @@
for name, tag in self._hg.tags().iteritems() ]
session(self._repo).flush()
- def refresh_commit(self, ci, seen_object_ids):
+ def refresh_commit(self, ci, seen_object_ids, lazy=True):
obj = self._hg[ci.object_id]
# Save commit metadata
mo = self.re_hg_user.match(obj.user())
@@ -176,9 +176,9 @@
fake_tree = self._tree_from_changectx(obj)
ci.tree_id = fake_tree.hex()
tree, isnew = M.Tree.upsert(fake_tree.hex())
- if isnew:
+ if not lazy or isnew:
tree.set_context(ci)
- self._refresh_tree(tree, fake_tree)
+ self._refresh_tree(tree, fake_tree, lazy)
def refresh_commit_info(self, oid, seen):
from allura.model.repo import CommitDoc
@@ -276,7 +276,7 @@
root.set_blob(filepath, oid)
return root
- def _refresh_tree(self, tree, obj):
+ def _refresh_tree(self, tree, obj, lazy=True):
tree.object_ids=[
Object(object_id=o.hex(), name=name)
for name, o in obj.trees.iteritems() ]
@@ -285,7 +285,7 @@
for name, oid in obj.blobs.iteritems() ]
for name, o in obj.trees.iteritems():
subtree, isnew = M.Tree.upsert(o.hex())
- if isnew:
+ if not lazy or isnew:
subtree.set_context(tree, name)
self._refresh_tree(subtree, o)
for name, oid in obj.blobs.iteritems():