Patch Set 7: (1 inline comment)

* Results produced by scan(TreeWalk walk, boolean recursive) (when recursive == true) and {walk.setRecursive(true); scan(walk)} will be different. To check that simply change test shouldListModificationInDirWithModifiedTrees() in DiffEntryTest class. You will see that after modification test case will fail.
* Yes, this is true. Only change I7ddb21e7ff54333dd6d7ace3209bbcf83da2b219 depends on this commit. But this shows how performance improvements evolves over time. I would prefer to keep this with chronology (first idea of using DiffEntry.scan() in EGit, then providing extended implementation with change direction in EGit), but if you have reasonable arguments I can squash both commits in EGit, abandon this change and push separate change with tests for DiffEntry.