diff options
author | zeripath <art27@cantab.net> | 2021-02-16 15:39:45 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-16 16:39:45 +0100 |
commit | 66a148e398c3c944e2b79187c09ef0bb7bdfdd5e (patch) | |
tree | e983d4e0d072ec88918e7ccf191c1c28f612999f | |
parent | ebddee8d2b46afc8f297ef86463590db57367e70 (diff) | |
download | gitea-66a148e398c3c944e2b79187c09ef0bb7bdfdd5e.tar.gz gitea-66a148e398c3c944e2b79187c09ef0bb7bdfdd5e.zip |
Restore detection of branches are equal on compare page (#14586)
Somehow the test for detecting if branches are equal broke
this PR restores this functionality.
Fix #14502
Signed-off-by: Andrew Thornton <art27@cantab.net>
-rw-r--r-- | modules/git/repo_compare.go | 19 | ||||
-rw-r--r-- | routers/repo/compare.go | 26 |
2 files changed, 18 insertions, 27 deletions
diff --git a/modules/git/repo_compare.go b/modules/git/repo_compare.go index 5f92bc7714..3255e68392 100644 --- a/modules/git/repo_compare.go +++ b/modules/git/repo_compare.go @@ -20,9 +20,11 @@ import ( // CompareInfo represents needed information for comparing references. type CompareInfo struct { - MergeBase string - Commits *list.List - NumFiles int + MergeBase string + BaseCommitID string + HeadCommitID string + Commits *list.List + NumFiles int } // GetMergeBase checks and returns merge base of two branches and the reference used as base. @@ -66,8 +68,18 @@ func (repo *Repository) GetCompareInfo(basePath, baseBranch, headBranch string) } compareInfo := new(CompareInfo) + + compareInfo.HeadCommitID, err = GetFullCommitID(repo.Path, headBranch) + if err != nil { + compareInfo.HeadCommitID = headBranch + } + compareInfo.MergeBase, remoteBranch, err = repo.GetMergeBase(tmpRemote, baseBranch, headBranch) if err == nil { + compareInfo.BaseCommitID, err = GetFullCommitID(repo.Path, remoteBranch) + if err != nil { + compareInfo.BaseCommitID = remoteBranch + } // We have a common base - therefore we know that ... should work logs, err := NewCommand("log", compareInfo.MergeBase+"..."+headBranch, prettyLogFormat).RunInDirBytes(repo.Path) if err != nil { @@ -83,6 +95,7 @@ func (repo *Repository) GetCompareInfo(basePath, baseBranch, headBranch string) if err != nil { compareInfo.MergeBase = remoteBranch } + compareInfo.BaseCommitID = compareInfo.MergeBase } // Count number of changed files. diff --git a/routers/repo/compare.go b/routers/repo/compare.go index 4869e5919a..2eef20f5ff 100644 --- a/routers/repo/compare.go +++ b/routers/repo/compare.go @@ -423,18 +423,7 @@ func PrepareCompareDiff( // Get diff information. ctx.Data["CommitRepoLink"] = headRepo.Link() - headCommitID := headBranch - if ctx.Data["HeadIsCommit"] == false { - if ctx.Data["HeadIsTag"] == true { - headCommitID, err = headGitRepo.GetTagCommitID(headBranch) - } else { - headCommitID, err = headGitRepo.GetBranchCommitID(headBranch) - } - if err != nil { - ctx.ServerError("GetRefCommitID", err) - return false - } - } + headCommitID := compareInfo.HeadCommitID ctx.Data["AfterCommitID"] = headCommitID @@ -460,18 +449,7 @@ func PrepareCompareDiff( } baseGitRepo := ctx.Repo.GitRepo - baseCommitID := baseBranch - if ctx.Data["BaseIsCommit"] == false { - if ctx.Data["BaseIsTag"] == true { - baseCommitID, err = baseGitRepo.GetTagCommitID(baseBranch) - } else { - baseCommitID, err = baseGitRepo.GetBranchCommitID(baseBranch) - } - if err != nil { - ctx.ServerError("GetRefCommitID", err) - return false - } - } + baseCommitID := compareInfo.BaseCommitID baseCommit, err := baseGitRepo.GetCommit(baseCommitID) if err != nil { |