mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Fix tags sort by creation time (descending) on branch/tag dropdowns (#23491)
This PR fixes the tags sort issue mentioned in #23432 The tags on dropdown shoud be sorted in descending order of time but are not. Because when getting tags, it execeutes `git tag sort --sort=-taggerdate`. Git supports two types of tags: lightweight and annotated, and `git tag sort --sort=-taggerdate` dosen't work with lightweight tags, which will not give correct result. This PR add `GetTagNamesByRepoID ` to get tags from the database so the tags are sorted. Also adapt this change to the droplist when comparing branches. Dropdown places: <img width="369" alt="截屏2023-03-15 14 25 39" src="https://user-images.githubusercontent.com/17645053/225224506-65a72e50-4c11-41d7-8187-a7e9c7dab2cb.png"> <img width="675" alt="截屏2023-03-15 14 25 27" src="https://user-images.githubusercontent.com/17645053/225224526-65ce8008-340c-43f6-aa65-b6bd9e1a1bf1.png">
This commit is contained in:
		| @@ -660,20 +660,9 @@ func RepoAssignment(ctx *Context) (cancel context.CancelFunc) { | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	tags, err := ctx.Repo.GitRepo.GetTags(0, 0) | ||||
| 	tags, err := repo_model.GetTagNamesByRepoID(ctx, ctx.Repo.Repository.ID) | ||||
| 	if err != nil { | ||||
| 		if strings.Contains(err.Error(), "fatal: not a git repository ") { | ||||
| 			log.Error("Repository %-v has a broken repository on the file system: %s Error: %v", ctx.Repo.Repository, ctx.Repo.Repository.RepoPath(), err) | ||||
| 			ctx.Repo.Repository.Status = repo_model.RepositoryBroken | ||||
| 			ctx.Repo.Repository.IsEmpty = true | ||||
| 			ctx.Data["BranchName"] = ctx.Repo.Repository.DefaultBranch | ||||
| 			// Only allow access to base of repo or settings | ||||
| 			if !isHomeOrSettings { | ||||
| 				ctx.Redirect(ctx.Repo.RepoLink) | ||||
| 			} | ||||
| 			return | ||||
| 		} | ||||
| 		ctx.ServerError("GetTags", err) | ||||
| 		ctx.ServerError("GetTagNamesByRepoID", err) | ||||
| 		return | ||||
| 	} | ||||
| 	ctx.Data["Tags"] = tags | ||||
|   | ||||
		Reference in New Issue
	
	Block a user