From 8d9f8e10b10bf7c19c1609072a8cb144176ee01b Mon Sep 17 00:00:00 2001 From: Hester Gong Date: Fri, 17 Mar 2023 01:01:10 +0800 Subject: Fix tags sort by creation time (descending) on branch/tag dropdowns (#23491) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: 截屏2023-03-15 14 25 39 截屏2023-03-15 14 25 27 --- routers/web/repo/compare.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'routers') 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 -- cgit v1.2.3