| @@ -1144,7 +1144,7 @@ func (pr *PullRequest) UpdatePatch() (err error) { | |||||
| defer func() { | defer func() { | ||||
| headGitRepo.RemoveRemote(tmpRemote) | 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 { | if err != nil { | ||||
| return fmt.Errorf("GetMergeBase: %v", err) | return fmt.Errorf("GetMergeBase: %v", err) | ||||
| } else if err = pr.Update(); err != nil { | } else if err = pr.Update(); err != nil { | ||||
| @@ -22,8 +22,8 @@ type CompareInfo struct { | |||||
| NumFiles int | 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 == "" { | if tmpRemote == "" { | ||||
| tmpRemote = "origin" | 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) | 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. | // 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 := new(CompareInfo) | ||||
| compareInfo.MergeBase, err = repo.GetMergeBase(tmpRemote, baseBranch, headBranch) | |||||
| compareInfo.MergeBase, remoteBranch, err = repo.GetMergeBase(tmpRemote, baseBranch, headBranch) | |||||
| if err == nil { | if err == nil { | ||||
| // We have a common base | // We have a common base | ||||
| logs, err := NewCommand("log", compareInfo.MergeBase+"..."+headBranch, prettyLogFormat).RunInDirBytes(repo.Path) | logs, err := NewCommand("log", compareInfo.MergeBase+"..."+headBranch, prettyLogFormat).RunInDirBytes(repo.Path) | ||||
| @@ -286,7 +286,7 @@ func PrepareMergedViewPullInfo(ctx *context.Context, issue *models.Issue) *git.C | |||||
| setMergeTarget(ctx, pull) | setMergeTarget(ctx, pull) | ||||
| ctx.Data["HasMerged"] = true | 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()) | pull.MergeBase, pull.GetGitRefName()) | ||||
| if err != nil { | if err != nil { | ||||
| @@ -301,9 +301,9 @@ func PrepareMergedViewPullInfo(ctx *context.Context, issue *models.Issue) *git.C | |||||
| ctx.ServerError("GetCompareInfo", err) | ctx.ServerError("GetCompareInfo", err) | ||||
| return nil | 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 | // 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 | 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) | pull.BaseBranch, pull.HeadBranch) | ||||
| if err != nil { | if err != nil { | ||||
| if strings.Contains(err.Error(), "fatal: Not a valid object name") { | 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["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 | // ViewPullCommits show commits for a pull request | ||||