This is still not incremental. You are building everything for this one file at once. Which doesn't give the caller a chance to see if the block you have is sufficient and stop you from processing more history.