summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Lubenka <mario.lubenka@googlemail.com>2019-06-12 01:32:08 +0200
committertechknowlogick <hello@techknowlogick.com>2019-06-11 19:32:08 -0400
commit1608f63e396c78bcbea3605b812556ddf441a6c4 (patch)
treeea9fd908eefc3acafce94d79625243b4999258dc
parent499a8a1cdd815cc25554371598140f5fb01e216f (diff)
downloadgitea-1608f63e396c78bcbea3605b812556ddf441a6c4.tar.gz
gitea-1608f63e396c78bcbea3605b812556ddf441a6c4.zip
Fixes diff on merged pull requests (#7171)
-rw-r--r--models/pull.go2
-rw-r--r--modules/git/repo_compare.go8
-rw-r--r--routers/repo/pull.go16
3 files changed, 13 insertions, 13 deletions
diff --git a/models/pull.go b/models/pull.go
index 5ac1126314..1f03dd9b0f 100644
--- a/models/pull.go
+++ b/models/pull.go
@@ -1144,7 +1144,7 @@ func (pr *PullRequest) UpdatePatch() (err error) {
defer func() {
headGitRepo.RemoveRemote(tmpRemote)
}()
- pr.MergeBase, err = headGitRepo.GetMergeBase(tmpRemote, pr.BaseBranch, pr.HeadBranch)
+ pr.MergeBase, _, err = headGitRepo.GetMergeBase(tmpRemote, pr.BaseBranch, pr.HeadBranch)
if err != nil {
return fmt.Errorf("GetMergeBase: %v", err)
} else if err = pr.Update(); err != nil {
diff --git a/modules/git/repo_compare.go b/modules/git/repo_compare.go
index e7a1d72a85..42f0b9ad0c 100644
--- a/modules/git/repo_compare.go
+++ b/modules/git/repo_compare.go
@@ -22,8 +22,8 @@ type CompareInfo struct {
NumFiles int
}
-// GetMergeBase checks and returns merge base of two branches.
-func (repo *Repository) GetMergeBase(tmpRemote string, base, head string) (string, error) {
+// GetMergeBase checks and returns merge base of two branches and the reference used as base.
+func (repo *Repository) GetMergeBase(tmpRemote string, base, head string) (string, string, error) {
if tmpRemote == "" {
tmpRemote = "origin"
}
@@ -38,7 +38,7 @@ func (repo *Repository) GetMergeBase(tmpRemote string, base, head string) (strin
}
stdout, err := NewCommand("merge-base", base, head).RunInDir(repo.Path)
- return strings.TrimSpace(stdout), err
+ return strings.TrimSpace(stdout), base, err
}
// GetCompareInfo generates and returns compare information between base and head branches of repositories.
@@ -59,7 +59,7 @@ func (repo *Repository) GetCompareInfo(basePath, baseBranch, headBranch string)
}
compareInfo := new(CompareInfo)
- compareInfo.MergeBase, err = repo.GetMergeBase(tmpRemote, baseBranch, headBranch)
+ compareInfo.MergeBase, remoteBranch, err = repo.GetMergeBase(tmpRemote, baseBranch, headBranch)
if err == nil {
// We have a common base
logs, err := NewCommand("log", compareInfo.MergeBase+"..."+headBranch, prettyLogFormat).RunInDirBytes(repo.Path)
diff --git a/routers/repo/pull.go b/routers/repo/pull.go
index 182f715545..71c684356d 100644
--- a/routers/repo/pull.go
+++ b/routers/repo/pull.go
@@ -286,7 +286,7 @@ func PrepareMergedViewPullInfo(ctx *context.Context, issue *models.Issue) *git.C
setMergeTarget(ctx, pull)
ctx.Data["HasMerged"] = true
- prInfo, err := ctx.Repo.GitRepo.GetCompareInfo(ctx.Repo.Repository.RepoPath(),
+ compareInfo, err := ctx.Repo.GitRepo.GetCompareInfo(ctx.Repo.Repository.RepoPath(),
pull.MergeBase, pull.GetGitRefName())
if err != nil {
@@ -301,9 +301,9 @@ func PrepareMergedViewPullInfo(ctx *context.Context, issue *models.Issue) *git.C
ctx.ServerError("GetCompareInfo", err)
return nil
}
- ctx.Data["NumCommits"] = prInfo.Commits.Len()
- ctx.Data["NumFiles"] = prInfo.NumFiles
- return prInfo
+ ctx.Data["NumCommits"] = compareInfo.Commits.Len()
+ ctx.Data["NumFiles"] = compareInfo.NumFiles
+ return compareInfo
}
// PrepareViewPullInfo show meta information for a pull request preview page
@@ -336,7 +336,7 @@ func PrepareViewPullInfo(ctx *context.Context, issue *models.Issue) *git.Compare
return nil
}
- prInfo, err := headGitRepo.GetCompareInfo(models.RepoPath(repo.Owner.Name, repo.Name),
+ compareInfo, err := headGitRepo.GetCompareInfo(models.RepoPath(repo.Owner.Name, repo.Name),
pull.BaseBranch, pull.HeadBranch)
if err != nil {
if strings.Contains(err.Error(), "fatal: Not a valid object name") {
@@ -361,9 +361,9 @@ func PrepareViewPullInfo(ctx *context.Context, issue *models.Issue) *git.Compare
ctx.Data["ConflictedFiles"] = pull.ConflictedFiles
}
- ctx.Data["NumCommits"] = prInfo.Commits.Len()
- ctx.Data["NumFiles"] = prInfo.NumFiles
- return prInfo
+ ctx.Data["NumCommits"] = compareInfo.Commits.Len()
+ ctx.Data["NumFiles"] = compareInfo.NumFiles
+ return compareInfo
}
// ViewPullCommits show commits for a pull request