Patch Set 1: I would prefer that you didn't submit this

It looks strange that a lot of public API methods expose FileRepository in their parameter lists. This implies we have to break the API again when a Repository interface is extracted which would shield applications from the details of the chosen storage implementation. So as Robin suggested I would also tend to first extract the interface and then later rename the current file based storage implementation. This further refactoring would then mainly affect jgit implementation and hopefully not or only minimally the application coding.