Add DiffIndexToWorkdir

This commit is contained in:
Mark Probst 2015-03-11 16:12:39 -07:00
parent 8622831b11
commit 524cc7967b
1 changed files with 25 additions and 0 deletions

25
diff.go
View File

@ -620,3 +620,28 @@ func (v *Repository) DiffTreeToWorkdirWithIndex(oldTree *Tree, opts *DiffOptions
} }
return newDiffFromC(diffPtr), nil return newDiffFromC(diffPtr), nil
} }
func (v *Repository) DiffIndexToWorkdir(index *Index, opts *DiffOptions) (*Diff, error) {
var diffPtr *C.git_diff
var indexPtr *C.git_index
if index != nil {
indexPtr = index.ptr
}
copts, notifyData := diffOptionsToC(opts)
defer freeDiffOptions(copts)
runtime.LockOSThread()
defer runtime.UnlockOSThread()
ecode := C.git_diff_index_to_workdir(&diffPtr, v.ptr, indexPtr, copts)
if ecode < 0 {
return nil, MakeGitError(ecode)
}
if notifyData != nil && notifyData.Diff != nil {
return notifyData.Diff, nil
}
return newDiffFromC(diffPtr), nil
}