aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorHester Gong <hestergong@gmail.com>2023-03-17 01:01:10 +0800
committerGitHub <noreply@github.com>2023-03-16 12:01:10 -0500
commit8d9f8e10b10bf7c19c1609072a8cb144176ee01b (patch)
treedbc431b46826a99536b6401e643e5f5ae4deaf37 /modules
parent661e78bed5c0879c32c53eb60f3d6898b93e1f08 (diff)
downloadgitea-8d9f8e10b10bf7c19c1609072a8cb144176ee01b.tar.gz
gitea-8d9f8e10b10bf7c19c1609072a8cb144176ee01b.zip
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">
Diffstat (limited to 'modules')
-rw-r--r--modules/context/repo.go15
1 files changed, 2 insertions, 13 deletions
diff --git a/modules/context/repo.go b/modules/context/repo.go
index e4ac65e961..b83caf4e4b 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -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