diff options
Diffstat (limited to 'refs.go')
| -rw-r--r-- | refs.go | 47 |
1 files changed, 47 insertions, 0 deletions
@@ -0,0 +1,47 @@ +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) +} |
