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) }