|
@@ -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 {
|