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>
This commit is contained in:
zeripath 2021-02-16 15:39:45 +00:00 committed by GitHub
parent ebddee8d2b
commit 66a148e398
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 27 deletions

View File

@ -20,9 +20,11 @@ import (
// CompareInfo represents needed information for comparing references. // CompareInfo represents needed information for comparing references.
type CompareInfo struct { type CompareInfo struct {
MergeBase string MergeBase string
Commits *list.List BaseCommitID string
NumFiles int HeadCommitID string
Commits *list.List
NumFiles int
} }
// GetMergeBase checks and returns merge base of two branches and the reference used as base. // 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 := new(CompareInfo)
compareInfo.HeadCommitID, err = GetFullCommitID(repo.Path, headBranch)
if err != nil {
compareInfo.HeadCommitID = headBranch
}
compareInfo.MergeBase, remoteBranch, err = repo.GetMergeBase(tmpRemote, baseBranch, headBranch) compareInfo.MergeBase, remoteBranch, err = repo.GetMergeBase(tmpRemote, baseBranch, headBranch)
if err == nil { 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 // We have a common base - therefore we know that ... should work
logs, err := NewCommand("log", compareInfo.MergeBase+"..."+headBranch, prettyLogFormat).RunInDirBytes(repo.Path) logs, err := NewCommand("log", compareInfo.MergeBase+"..."+headBranch, prettyLogFormat).RunInDirBytes(repo.Path)
if err != nil { if err != nil {
@ -83,6 +95,7 @@ func (repo *Repository) GetCompareInfo(basePath, baseBranch, headBranch string)
if err != nil { if err != nil {
compareInfo.MergeBase = remoteBranch compareInfo.MergeBase = remoteBranch
} }
compareInfo.BaseCommitID = compareInfo.MergeBase
} }
// Count number of changed files. // Count number of changed files.

View File

@ -423,18 +423,7 @@ func PrepareCompareDiff(
// Get diff information. // Get diff information.
ctx.Data["CommitRepoLink"] = headRepo.Link() ctx.Data["CommitRepoLink"] = headRepo.Link()
headCommitID := headBranch headCommitID := compareInfo.HeadCommitID
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
}
}
ctx.Data["AfterCommitID"] = headCommitID ctx.Data["AfterCommitID"] = headCommitID
@ -460,18 +449,7 @@ func PrepareCompareDiff(
} }
baseGitRepo := ctx.Repo.GitRepo baseGitRepo := ctx.Repo.GitRepo
baseCommitID := baseBranch baseCommitID := compareInfo.BaseCommitID
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
}
}
baseCommit, err := baseGitRepo.GetCommit(baseCommitID) baseCommit, err := baseGitRepo.GetCommit(baseCommitID)
if err != nil { if err != nil {