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

(3 inline comments)

I disagree with Christian Halstrick here.  CatFile isn't magically special.  There is *no* value in providing a "command" for it in the API.  If an application needs to read an object, it should be using ObjectReader.open(), or Repository.open().  After that its just copying one stream to another.  Totally not worth having a whole "command" in our API.

IMHO, stick to what you have here, aside from my review comments.