Output pointer to a git_diff pointer to be allocated.
The repository containing the tree and index.
A git_tree object to diff from, or null for empty tree.
The index to diff with; repo index used if null.
Structure with options to influence diff or null for defaults.
Create a diff between a tree and repository index.
This is equivalent to git diff --cached <treeish> or if you pass the HEAD tree, then like git diff --cached.
The tree you pass will be used for the "old_file" side of the delta, and the index will be used for the "new_file" side of the delta.
If you pass null for the index, then the existing index of the repo will be used. In this case, the index will be refreshed from disk (if it has changed) before the diff is generated.