Patches to make patch index more understandable and more robust.
The first patch directly concerns annotate. It changes the algorithm
that filters patches. New algorithm is much clearer than the old one.
The old algorithm has an advantage
when you annotate a file for which there are many patches after the last
patch that modified it, while the new algorithm has to
scan the whole history always. But with the old algorithm (and PI indexing)
there was a whole round trip of Int-to-patchId-to-Int done at each annotate.
The second patch removes all indexing when storing PI on disk. this makes the
code simpler and on-disk size bigger. but also is changes the infomap
(file -> patch) into a bloom filter, that is we only store the first Word32 of
patch hashes and tolerate false positives. this enables this particular file
to come back to its original size, and has the promise of being faster
to look into.
Third patch adds a version to the file of patch index that is read first.
3 patches for repository http://darcs.net:
patch f6fae3dd7bd4aeb22f373a96918e47a19b702e04
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date: Thu Nov 13 18:07:42 ART 2014
* reimplement getPatches with less code
patch d595d7c22d1e8839444b948f0b79f535d403da07
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date: Sun Nov 16 18:43:30 ART 2014
* no longer use indexing for on-disk patch index, make infomap a bloom filter
patch 0ae7bc74865b8d8bed458808853b6c71acd63c52
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date: Sun Nov 16 20:10:10 ART 2014
* resolve issue2418: add and check on-disk patch index version
Attachments
|