Blob for old side of diff, or null for empty blob
Treat old blob as if it had this filename; can be null
Raw data for new side of diff, or null for empty
Length of raw data for new side of diff
Treat buffer as if it had this filename; can be null
Options for diff, or null for default options
Callback for "file"; made once if there is a diff; can be null
Callback for binary files; can be null
Callback for each hunk in diff; can be null
Callback for each line in diff; can be null
Payload passed to each callback function
0 on success, non-zero callback return value, or error code
Directly run a diff between a blob and a buffer.
As with git_diff_blobs, comparing a blob and buffer lacks some context, so the git_diff_file parameters to the callbacks will be faked a la the rules for git_diff_blobs().
Passing null for old_blob will be treated as an empty blob (i.e. the file_cb will be invoked with git_delta_t.GIT_DELTA_ADDED and the diff will be the entire content of the buffer added). Passing null to the buffer will do the reverse, with GIT_DELTA_REMOVED and blob content removed.