Better delta base cache hash implementation
commit33ff858facdeed0379d7d0233c3598ef06fef1eb
authorUoti Urpala <uau@symbol.nonexistent.invalid>
Sat, 2 Aug 2008 22:47:37 +0000 (3 01:47 +0300)
committerUoti Urpala <uau@glyph.nonexistent.invalid>
Sun, 10 Apr 2011 13:03:35 +0000 (10 16:03 +0300)
treeb360f31f5a3f9f0f6426ab7c6be592285062bbad
parent7d83b630d54a66911e64079979e7cd85e0fe2c9a
Better delta base cache hash implementation

Delta base cache was a simple constant-size 256-entry hash table where
hash collisions always caused the previous value to be dropped.
Replace it with a more featured hash table that doesn't drop items at
collisions (keeps them in lists instead) and can grow the hash size
depending on number of items.

The documentation of core.deltaBaseCacheLimit should be changed;
currently it claims that the default should be reasonable for all
except the largest projects, and "You probably do not need to adjust
this value.". However now that the code is able to really use larger
cache amounts increasing the size can give very significant benefits
for at least 'git log -S' speed.
sha1_file.c