Mercurial > hg > hg-git
changeset 234:6f34aee64a3f
readd blob caching (~25% improvement in gexport)
(was lost during the port to latest dulwich), this would also allow
hg-git to take advantage of Sverre's fast-import script
author | Abderrahim Kitouni <a.kitouni@gmail.com> |
---|---|
date | Sun, 02 Aug 2009 19:12:16 +0100 |
parents | 57f860801ab0 |
children | 912d6a5837c8 |
files | git_handler.py |
diffstat | 1 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/git_handler.py +++ b/git_handler.py @@ -322,17 +322,23 @@ def iterblobs(self, ctx): for f in ctx: - blob = Blob() - blob.data = ctx[f].data() - if not blob.id in self.git.object_store: + fctx = ctx[f] + blobid = self.map_git_get(hex(fctx.filenode())) + + if not blobid: + blob = Blob.from_string(fctx.data()) self.git.object_store.add_object(blob) + self.map_set(blob.id, hex(fctx.filenode())) + blobid = blob.id + if 'l' in ctx.flags(f): mode = 0120000 elif 'x' in ctx.flags(f): mode = 0100755 else: mode = 0100644 - yield f, blob.id, mode + + yield f, blobid, mode def import_git_objects(self, remote_name=None, refs=None): self.ui.status(_("importing Git objects into Hg\n"))