summaryrefslogtreecommitdiff
path: root/index.go
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2016-10-31 20:03:05 +0100
committerGitHub <[email protected]>2016-10-31 20:03:05 +0100
commit42a90d4e68177eb2caad5eb4eed94bf01db308c2 (patch)
treeced946be713d218639d70399dd24116571ec243d /index.go
parente9668545c972870637b79670bcb532401353c3d6 (diff)
parentc18c8693feb805d9ffbd1d22444683ce5ac96477 (diff)
Merge pull request #351 from ezwiebel/index-remove-directory
Implement git_index_remove_directory in index wrapper
Diffstat (limited to 'index.go')
-rw-r--r--index.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/index.go b/index.go
index ae94864..2afdcdf 100644
--- a/index.go
+++ b/index.go
@@ -278,6 +278,22 @@ func (v *Index) RemoveByPath(path string) error {
return nil
}
+// RemoveDirectory removes all entries from the index under a given directory.
+func (v *Index) RemoveDirectory(dir string, stage int) error {
+ cstr := C.CString(dir)
+ defer C.free(unsafe.Pointer(cstr))
+
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ ret := C.git_index_remove_directory(v.ptr, cstr, C.int(stage))
+ if ret < 0 {
+ return MakeGitError(ret)
+ }
+
+ return nil
+}
+
func (v *Index) WriteTreeTo(repo *Repository) (*Oid, error) {
oid := new(Oid)