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