bug: remove use of the too recent %(refname:lstrip=-1) of git

fix #24
This commit is contained in:
Michael Muré 2018-08-19 13:58:55 +02:00
parent 71523f23ed
commit b58812136e
No known key found for this signature in database
GPG Key ID: A4457C029293126F
4 changed files with 18 additions and 41 deletions

View File

@ -58,7 +58,7 @@ func NewBug() *Bug {
// FindLocalBug find an existing Bug matching a prefix
func FindLocalBug(repo repository.Repo, prefix string) (*Bug, error) {
ids, err := repo.ListIds(bugsRefPattern)
ids, err := ListLocalIds(repo)
if err != nil {
return nil, err
@ -255,7 +255,23 @@ func readAllBugs(repo repository.Repo, refPrefix string) <-chan StreamedBug {
// ListLocalIds list all the available local bug ids
func ListLocalIds(repo repository.Repo) ([]string, error) {
return repo.ListIds(bugsRefPattern)
refs, err := repo.ListRefs(bugsRefPattern)
if err != nil {
return nil, err
}
return refsToIds(refs), nil
}
func refsToIds(refs []string) []string {
ids := make([]string, len(refs))
for i, ref := range refs {
splitted := strings.Split(ref, "/")
ids[i] = splitted[len(splitted)-1]
}
return ids
}
// IsValid check if the Bug data is valid

View File

@ -257,25 +257,6 @@ func (repo *GitRepo) ListRefs(refspec string) ([]string, error) {
return splitted, nil
}
// ListIds will return a list of Git ref matching the given refspec,
// stripped to only the last part of the ref
func (repo *GitRepo) ListIds(refspec string) ([]string, error) {
// the format option will strip the ref name to keep only the last part (ie, the bug id)
stdout, err := repo.runGitCommand("for-each-ref", "--format=%(refname:lstrip=-1)", refspec)
if err != nil {
return nil, err
}
splitted := strings.Split(stdout, "\n")
if len(splitted) == 1 && splitted[0] == "" {
return []string{}, nil
}
return splitted, nil
}
// RefExist will check if a reference exist in Git
func (repo *GitRepo) RefExist(ref string) (bool, error) {
stdout, err := repo.runGitCommand("for-each-ref", ref)

View File

@ -3,7 +3,6 @@ package repository
import (
"crypto/sha1"
"fmt"
"strings"
"github.com/MichaelMure/git-bug/util"
)
@ -140,21 +139,6 @@ func (r *mockRepoForTest) ListRefs(refspec string) ([]string, error) {
return keys, nil
}
// ListIds will return a list of Git ref matching the given refspec,
// stripped to only the last part of the ref
func (r *mockRepoForTest) ListIds(refspec string) ([]string, error) {
keys := make([]string, len(r.refs))
i := 0
for k := range r.refs {
splitted := strings.Split(k, "/")
keys[i] = splitted[len(splitted)-1]
i++
}
return keys, nil
}
func (r *mockRepoForTest) ListCommits(ref string) ([]util.Hash, error) {
var hashes []util.Hash

View File

@ -49,10 +49,6 @@ type Repo interface {
// ListRefs will return a list of Git ref matching the given refspec
ListRefs(refspec string) ([]string, error)
// ListIds will return a list of Git ref matching the given refspec,
// stripped to only the last part of the ref
ListIds(refspec string) ([]string, error)
// RefExist will check if a reference exist in Git
RefExist(ref string) (bool, error)