going2git/refs.go

48 lines
850 B
Go

package main
import (
"fmt"
"os"
git "go.wit.com/lib/libgit2"
"go.wit.com/log"
)
func showRefs() error {
log.Info("how do you do this with libgit2 and git2go? notsure.")
repo, err := git.OpenRepository(argv.RepoPath)
if err != nil {
log.Info("open failed", argv.RepoPath, err)
return err
}
ref, err := repo.Head()
log.Info("head", ref, err, ref.Name())
fmt.Printf("%+v\n", ref)
walkRepo(repo)
return nil
}
func walkRepo(repo *git.Repository) {
ri, err := repo.NewReferenceIterator()
exitIf(err)
for {
ref, err := ri.Next()
if err != nil {
log.Info("done", err)
return
}
log.Info("head", ref, err, ref.Name(), ref.SymbolicTarget(), ref.Shorthand())
// fmt.Printf("%+v\n", ref)
// SymbolicTarget()
}
}
func exitIf(err error) {
if err == nil {
return
}
log.Info("exit due to error", err)
os.Exit(-1)
}