Tree: add EntryByPath
The more powerful version of EntryByName.
This commit is contained in:
parent
008e1efb35
commit
ef5fc37870
15
tree.go
15
tree.go
|
@ -54,6 +54,21 @@ func (t Tree) EntryByName(filename string) *TreeEntry {
|
||||||
return newTreeEntry(entry)
|
return newTreeEntry(entry)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EntryByPath looks up an entry by its full path, recursing into
|
||||||
|
// deeper trees if necessary (i.e. if there are slashes in the path)
|
||||||
|
func (t Tree) EntryByPath(path string) (*TreeEntry, error) {
|
||||||
|
cpath := C.CString(path)
|
||||||
|
defer C.free(unsafe.Pointer(cpath))
|
||||||
|
var entry *C.git_tree_entry
|
||||||
|
|
||||||
|
ret := C.git_tree_entry_bypath(&entry, t.ptr, cpath)
|
||||||
|
if ret < 0 {
|
||||||
|
return nil, LastError()
|
||||||
|
}
|
||||||
|
|
||||||
|
return newTreeEntry(entry), nil
|
||||||
|
}
|
||||||
|
|
||||||
func (t Tree) EntryByIndex(index uint64) *TreeEntry {
|
func (t Tree) EntryByIndex(index uint64) *TreeEntry {
|
||||||
entry := C.git_tree_entry_byindex(t.ptr, C.size_t(index))
|
entry := C.git_tree_entry_byindex(t.ptr, C.size_t(index))
|
||||||
if entry == nil {
|
if entry == nil {
|
||||||
|
|
Loading…
Reference in New Issue