|
|
|
@ -22,6 +22,9 @@ func (repo *Repository) IsTagExist(tagName string) bool { |
|
|
|
|
|
|
|
|
|
// GetTags returns all tags of given repository.
|
|
|
|
|
func (repo *Repository) GetTags() ([]string, error) { |
|
|
|
|
if gitVer.AtLeast(MustParseVersion("2.0.0")) { |
|
|
|
|
return repo.getTagsReversed() |
|
|
|
|
} |
|
|
|
|
stdout, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", "-l") |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, errors.New(stderr) |
|
|
|
@ -30,6 +33,15 @@ func (repo *Repository) GetTags() ([]string, error) { |
|
|
|
|
return tags[:len(tags)-1], nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (repo *Repository) getTagsReversed() ([]string, error) { |
|
|
|
|
stdout, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", "-l", "--sort=-v:refname") |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, errors.New(stderr) |
|
|
|
|
} |
|
|
|
|
tags := strings.Split(stdout, "\n") |
|
|
|
|
return tags[:len(tags)-1], nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (repo *Repository) CreateTag(tagName, idStr string) error { |
|
|
|
|
_, stderr, err := com.ExecCmdDir(repo.Path, "git", "tag", tagName, idStr) |
|
|
|
|
if err != nil { |
|
|
|
|