diff options
author | Hester Gong <hestergong@gmail.com> | 2023-03-17 01:01:10 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-16 12:01:10 -0500 |
commit | 8d9f8e10b10bf7c19c1609072a8cb144176ee01b (patch) | |
tree | dbc431b46826a99536b6401e643e5f5ae4deaf37 /routers | |
parent | 661e78bed5c0879c32c53eb60f3d6898b93e1f08 (diff) | |
download | gitea-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 'routers')
-rw-r--r-- | routers/web/repo/compare.go | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index f21611c634..d7e7bac7b7 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -717,10 +717,9 @@ func CompareDiff(ctx *context.Context) { return } - baseGitRepo := ctx.Repo.GitRepo - baseTags, err := baseGitRepo.GetTags(0, 0) + baseTags, err := repo_model.GetTagNamesByRepoID(ctx, ctx.Repo.Repository.ID) if err != nil { - ctx.ServerError("GetTags", err) + ctx.ServerError("GetTagNamesByRepoID", err) return } ctx.Data["Tags"] = baseTags @@ -738,9 +737,9 @@ func CompareDiff(ctx *context.Context) { } ctx.Data["HeadBranches"] = headBranches - headTags, err := ci.HeadGitRepo.GetTags(0, 0) + headTags, err := repo_model.GetTagNamesByRepoID(ctx, ci.HeadRepo.ID) if err != nil { - ctx.ServerError("GetTags", err) + ctx.ServerError("GetTagNamesByRepoID", err) return } ctx.Data["HeadTags"] = headTags |