48 lines
850 B
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)
|
|
}
|