Update to support building against current HEAD #57
10
git.go
10
git.go
|
@ -167,16 +167,16 @@ func Discover(start string, across_fs bool, ceiling_dirs []string) (string, erro
|
||||||
cstart := C.CString(start)
|
cstart := C.CString(start)
|
||||||
defer C.free(unsafe.Pointer(cstart))
|
defer C.free(unsafe.Pointer(cstart))
|
||||||
|
|
||||||
retpath := (*C.char)(C.malloc(C.GIT_PATH_MAX))
|
|
||||||
defer C.free(unsafe.Pointer(retpath))
|
|
||||||
|
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
defer runtime.UnlockOSThread()
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
r := C.git_repository_discover(retpath, C.GIT_PATH_MAX, cstart, cbool(across_fs), ceildirs)
|
retpath := C.git_buf {}
|
||||||
|
|
||||||
|
r := C.git_repository_discover(&retpath, cstart, cbool(across_fs), ceildirs)
|
||||||
|
|
||||||
if r == 0 {
|
if r == 0 {
|
||||||
return C.GoString(retpath), nil
|
C.git_buf_free(&retpath)
|
||||||
|
return C.GoStringN(retpath.ptr, C.int(retpath.size)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return "", LastError()
|
return "", LastError()
|
||||||
|
|
32
reference.go
32
reference.go
|
@ -27,15 +27,21 @@ func newReferenceFromC(ptr *C.git_reference) *Reference {
|
||||||
return ref
|
return ref
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *Reference) SetSymbolicTarget(target string) (*Reference, error) {
|
func (v *Reference) SetSymbolicTarget(target string, signature *Signature, message string) (*Reference, error) {
|
||||||
var ptr *C.git_reference
|
var ptr *C.git_reference
|
||||||
ctarget := C.CString(target)
|
ctarget := C.CString(target)
|
||||||
defer C.free(unsafe.Pointer(ctarget))
|
defer C.free(unsafe.Pointer(ctarget))
|
||||||
|
|
||||||
|
csignature := signature.toC()
|
||||||
|
defer C.git_signature_free(csignature)
|
||||||
|
|
||||||
|
cmessage := C.CString(message)
|
||||||
|
defer C.free(unsafe.Pointer(cmessage))
|
||||||
|
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
defer runtime.UnlockOSThread()
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
ret := C.git_reference_symbolic_set_target(&ptr, v.ptr, ctarget)
|
ret := C.git_reference_symbolic_set_target(&ptr, v.ptr, ctarget, csignature, cmessage)
|
||||||
if ret < 0 {
|
if ret < 0 {
|
||||||
return nil, LastError()
|
return nil, LastError()
|
||||||
}
|
}
|
||||||
|
@ -43,13 +49,19 @@ func (v *Reference) SetSymbolicTarget(target string) (*Reference, error) {
|
||||||
return newReferenceFromC(ptr), nil
|
return newReferenceFromC(ptr), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *Reference) SetTarget(target *Oid) (*Reference, error) {
|
func (v *Reference) SetTarget(target *Oid, signature *Signature, message string) (*Reference, error) {
|
||||||
var ptr *C.git_reference
|
var ptr *C.git_reference
|
||||||
|
|
||||||
|
csignature := signature.toC()
|
||||||
|
defer C.git_signature_free(csignature)
|
||||||
|
|
||||||
|
cmessage := C.CString(message)
|
||||||
|
defer C.free(unsafe.Pointer(cmessage))
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
|
|
||||||
defer runtime.UnlockOSThread()
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
ret := C.git_reference_set_target(&ptr, v.ptr, target.toC())
|
ret := C.git_reference_set_target(&ptr, v.ptr, target.toC(), csignature, cmessage)
|
||||||
if ret < 0 {
|
if ret < 0 {
|
||||||
return nil, LastError()
|
return nil, LastError()
|
||||||
}
|
}
|
||||||
|
@ -71,15 +83,21 @@ func (v *Reference) Resolve() (*Reference, error) {
|
||||||
return newReferenceFromC(ptr), nil
|
return newReferenceFromC(ptr), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *Reference) Rename(name string, force bool) (*Reference, error) {
|
func (v *Reference) Rename(name string, force bool, signature *Signature, message string) (*Reference, error) {
|
||||||
var ptr *C.git_reference
|
var ptr *C.git_reference
|
||||||
cname := C.CString(name)
|
cname := C.CString(name)
|
||||||
defer C.free(unsafe.Pointer(cname))
|
defer C.free(unsafe.Pointer(cname))
|
||||||
|
|
||||||
|
csignature := signature.toC()
|
||||||
|
defer C.git_signature_free(csignature)
|
||||||
|
|
||||||
|
cmessage := C.CString(message)
|
||||||
|
defer C.free(unsafe.Pointer(cmessage))
|
||||||
|
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
defer runtime.UnlockOSThread()
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
ret := C.git_reference_rename(&ptr, v.ptr, cname, cbool(force))
|
ret := C.git_reference_rename(&ptr, v.ptr, cname, cbool(force), csignature, cmessage)
|
||||||
|
|
||||||
if ret < 0 {
|
if ret < 0 {
|
||||||
return nil, LastError()
|
return nil, LastError()
|
||||||
|
@ -152,7 +170,7 @@ func (repo *Repository) NewReferenceIterator() (*ReferenceIterator, error) {
|
||||||
// NewReferenceIteratorGlob creates an iterator over reference names
|
// NewReferenceIteratorGlob creates an iterator over reference names
|
||||||
// that match the speicified glob. The glob is of the usual fnmatch
|
// that match the speicified glob. The glob is of the usual fnmatch
|
||||||
// type.
|
// type.
|
||||||
func (repo *Repository) NewReferenceIteratorGlob(glob string) (*ReferenceIterator, error) {
|
func (repo *Repository) NewReferenceIteratorGlob(glob string, signature *Signature, message string) (*ReferenceIterator, error) {
|
||||||
cstr := C.CString(glob)
|
cstr := C.CString(glob)
|
||||||
defer C.free(unsafe.Pointer(cstr))
|
defer C.free(unsafe.Pointer(cstr))
|
||||||
var ptr *C.git_reference_iterator
|
var ptr *C.git_reference_iterator
|
||||||
|
|
|
@ -146,15 +146,21 @@ func (v *Repository) LookupReference(name string) (*Reference, error) {
|
||||||
return newReferenceFromC(ptr), nil
|
return newReferenceFromC(ptr), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *Repository) CreateReference(name string, oid *Oid, force bool) (*Reference, error) {
|
func (v *Repository) CreateReference(name string, oid *Oid, force bool, signature *Signature, message string) (*Reference, error) {
|
||||||
cname := C.CString(name)
|
cname := C.CString(name)
|
||||||
defer C.free(unsafe.Pointer(cname))
|
defer C.free(unsafe.Pointer(cname))
|
||||||
var ptr *C.git_reference
|
var ptr *C.git_reference
|
||||||
|
|
||||||
|
csignature := signature.toC()
|
||||||
|
defer C.git_signature_free(csignature)
|
||||||
|
|
||||||
|
cmessage := C.CString(message)
|
||||||
|
defer C.free(unsafe.Pointer(cmessage))
|
||||||
|
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
defer runtime.UnlockOSThread()
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
ecode := C.git_reference_create(&ptr, v.ptr, cname, oid.toC(), cbool(force))
|
ecode := C.git_reference_create(&ptr, v.ptr, cname, oid.toC(), cbool(force), csignature, cmessage)
|
||||||
if ecode < 0 {
|
if ecode < 0 {
|
||||||
return nil, LastError()
|
return nil, LastError()
|
||||||
}
|
}
|
||||||
|
@ -162,17 +168,23 @@ func (v *Repository) CreateReference(name string, oid *Oid, force bool) (*Refere
|
||||||
return newReferenceFromC(ptr), nil
|
return newReferenceFromC(ptr), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v *Repository) CreateSymbolicReference(name, target string, force bool) (*Reference, error) {
|
func (v *Repository) CreateSymbolicReference(name, target string, force bool, signature *Signature, message string) (*Reference, error) {
|
||||||
cname := C.CString(name)
|
cname := C.CString(name)
|
||||||
defer C.free(unsafe.Pointer(cname))
|
defer C.free(unsafe.Pointer(cname))
|
||||||
ctarget := C.CString(target)
|
ctarget := C.CString(target)
|
||||||
defer C.free(unsafe.Pointer(ctarget))
|
defer C.free(unsafe.Pointer(ctarget))
|
||||||
var ptr *C.git_reference
|
var ptr *C.git_reference
|
||||||
|
|
||||||
|
csignature := signature.toC()
|
||||||
|
defer C.git_signature_free(csignature)
|
||||||
|
|
||||||
|
cmessage := C.CString(message)
|
||||||
|
defer C.free(unsafe.Pointer(cmessage))
|
||||||
|
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
defer runtime.UnlockOSThread()
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
ecode := C.git_reference_symbolic_create(&ptr, v.ptr, cname, ctarget, cbool(force))
|
ecode := C.git_reference_symbolic_create(&ptr, v.ptr, cname, ctarget, cbool(force), csignature, cmessage)
|
||||||
if ecode < 0 {
|
if ecode < 0 {
|
||||||
return nil, LastError()
|
return nil, LastError()
|
||||||
}
|
}
|
||||||
|
@ -232,7 +244,7 @@ func (v *Repository) CreateCommit(
|
||||||
ret := C.git_commit_create(
|
ret := C.git_commit_create(
|
||||||
oid.toC(), v.ptr, cref,
|
oid.toC(), v.ptr, cref,
|
||||||
authorSig, committerSig,
|
authorSig, committerSig,
|
||||||
nil, cmsg, tree.ptr, C.int(nparents), parentsarg)
|
nil, cmsg, tree.ptr, C.size_t(nparents), parentsarg)
|
||||||
|
|
||||||
if ret < 0 {
|
if ret < 0 {
|
||||||
return nil, LastError()
|
return nil, LastError()
|
||||||
|
|
13
submodule.go
13
submodule.go
|
@ -236,11 +236,20 @@ func (sub *Submodule) FetchRecurseSubmodules() bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sub *Submodule) SetFetchRecurseSubmodules(v bool) error {
|
type SubmoduleRecurseType int
|
||||||
|
|
||||||
|
const (
|
||||||
|
SubmoduleRecurseReset SubmoduleRecurseType = C.GIT_SUBMODULE_RECURSE_RESET
|
||||||
|
SubmoduleRecurseNo = C.GIT_SUBMODULE_RECURSE_NO
|
||||||
|
SubmoduleRecurseYes = C.GIT_SUBMODULE_RECURSE_YES
|
||||||
|
SubmoduleRecurseOnDemand = C.GIT_SUBMODULE_RECURSE_ONDEMAND
|
||||||
|
)
|
||||||
|
|
||||||
|
func (sub *Submodule) SetFetchRecurseSubmodules(mode SubmoduleRecurseType) error {
|
||||||
runtime.LockOSThread()
|
runtime.LockOSThread()
|
||||||
defer runtime.UnlockOSThread()
|
defer runtime.UnlockOSThread()
|
||||||
|
|
||||||
ret := C.git_submodule_set_fetch_recurse_submodules(sub.ptr, cbool(v))
|
ret := C.git_submodule_set_fetch_recurse_submodules(sub.ptr, C.git_submodule_recurse_t(mode))
|
||||||
if ret < 0 {
|
if ret < 0 {
|
||||||
return LastError()
|
return LastError()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue