[darcs-devel] Repository.writePatch (issue80)
Jason Dagit
dagit at eecs.oregonstate.edu
Sat Jan 14 04:24:16 PST 2006
Hello,
I was looking a issue80 and I discovered that Repository.writePatch
reads the freshly written patch. This is a very expensive operation
given the current patch format. So I started to wonder why it does
that.
This took me to DarcsRepo.write_patch which led me to
PatchShow.writePatch. Am I correct in assuming the reason the patch
is reread is because the FilePath for the patch gets updated when the
patch is written? If that is the case, I think we can modify
Repository.writePatch to just update the patch's metadata and return
that instead of rereading the patch.
As an experiment I removed the reading the patch and just let
Repository.writePatch return the same patch it was given. On a test
case of recording a 37meg file I went from 39 seconds for the record
to just 3.9 seconds. Total memory allocated during the run when from
3.5 gigs to 444 megs. This is a very significant savings.
Should I send in the changes I have now, or do I need to update some
detail of the freshly written patch in Repository.writePatch?
Thanks,
Jason
More information about the darcs-devel
mailing list