// From a local repo find out the current branch name if there is one. func findCurrentBranch(repo v.Repo) string { Debug("Attempting to find current branch for %s", repo.Remote()) // Svn and Bzr don't have default branches. if repo.Vcs() == v.Svn || repo.Vcs() == v.Bzr { return "" } if repo.Vcs() == v.Git { c := exec.Command("git", "symbolic-ref", "--short", "HEAD") c.Dir = repo.LocalPath() c.Env = envForDir(c.Dir) out, err := c.CombinedOutput() if err != nil { Debug("Unable to find current branch for %s, error: %s", repo.Remote(), err) return "" } return strings.TrimSpace(string(out)) } if repo.Vcs() == v.Hg { c := exec.Command("hg", "branch") c.Dir = repo.LocalPath() c.Env = envForDir(c.Dir) out, err := c.CombinedOutput() if err != nil { Debug("Unable to find current branch for %s, error: %s", repo.Remote(), err) return "" } return strings.TrimSpace(string(out)) } return "" }