revlog: parse revlogv0 indexes into v1 internally
This lets us eliminate lots of special case code in our
performance-sensitive index accessors.
revlog: only allow lazy parsing with revlogng files
This will allow us to store indices in memory in a single entry format
revlog: simplify the v1 immediate parser
- read all the data at once (large files are handled by the lazy parser)
- cache the entire file for inline revlogs
- simplify looping
revlog: set the threshold for lazy parsing higher
A typical machine can parse a 1MB index in well under a second
revlog: add revlogio interface
This lets us separate the logic for different on-disk revlog formats from
the main revlog logic.
transactions: avoid late tear-down (
issue641)
We use weak references (ugh) to avoid having to manually delete
transaction references out of each call frame when an exception occurs.
hgk: enable mouse wheel under Windows.
For some reason, MouseWheel events are not routed under windows even in latest ActiveTcl 8.4.15 while they are under linux and macosx. These events are activated using code supplied with Tcl Tip 171: <http://www.tcl.tk/cgi-bin/tct/tip/171.html>. Strangely, the Tip code almost work but generates some unexpected infinite loop which is fixed using a simple boolean to check reentrancy.