## vcs.GitObjectReader


Read many objects through one `git cat-file --batch` process.


Usage

``` python
vcs.GitObjectReader(
    git_exe,
    cwd,
    git_dir=None,
)
```


Trees and blobs are cached by object id, so walking a long history whose manifests rarely change costs one round-trip per commit plus one per *distinct* manifest - not one process per commit per file.


## Methods

| Name | Description |
|----|----|
| [fetch()](#fetch) | Return `(oid, type, data)` for `spec` or `None` if missing. |
| [files()](#files) | Return `{path-under-spec: text}` for every blob under tree-ish `spec`. |

------------------------------------------------------------------------


#### fetch()


Return `(oid, type, data)` for `spec` or `None` if missing.


Usage

``` python
fetch(spec)
```


------------------------------------------------------------------------


#### files()


Return `{path-under-spec: text}` for every blob under tree-ish `spec`.


Usage

``` python
files(spec)
```
