Add support for ignore

This commit is contained in:
FUJII Ryota 2015-10-09 16:28:08 +09:00
parent 698ed4a42d
commit 56cc9e1b0e
1 changed files with 51 additions and 0 deletions

51
ignore.go Normal file
View File

@ -0,0 +1,51 @@
package git
/*
#include <git2.h>
*/
import "C"
import (
"runtime"
"unsafe"
)
func (v *Repository) AddIgnoreRule(rules string) error {
crules := C.CString(rules)
defer C.free(unsafe.Pointer(crules))
runtime.LockOSThread()
defer runtime.UnlockOSThread()
ret := C.git_ignore_add_rule(v.ptr, crules)
if ret < 0 {
return MakeGitError(ret)
}
return nil
}
func (v *Repository) ClearInternalIgnoreRules() error {
runtime.LockOSThread()
defer runtime.UnlockOSThread()
ret := C.git_ignore_clear_internal_rules(v.ptr)
if ret < 0 {
return MakeGitError(ret)
}
return nil
}
func (v *Repository) IsPathIgnored(path string) (bool, error) {
var ignored C.int
cpath := C.CString(path)
defer C.free(unsafe.Pointer(cpath))
runtime.LockOSThread()
defer runtime.UnlockOSThread()
ret := C.git_ignore_path_is_ignored(&ignored, v.ptr, cpath)
if ret < 0 {
return false, MakeGitError(ret)
}
return ignored == 1, nil
}