diff options
Diffstat (limited to 'routers/repo/pull.go')
-rw-r--r-- | routers/repo/pull.go | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/routers/repo/pull.go b/routers/repo/pull.go index e6de352a..736f26e4 100644 --- a/routers/repo/pull.go +++ b/routers/repo/pull.go @@ -242,8 +242,11 @@ func ViewPullCommits(ctx *context.Context) { return } pull := issue.PullRequest - ctx.Data["Username"] = pull.HeadUserName - ctx.Data["Reponame"] = pull.HeadRepo.Name + + if pull.HeadRepo != nil { + ctx.Data["Username"] = pull.HeadUserName + ctx.Data["Reponame"] = pull.HeadRepo.Name + } var commits *list.List if pull.HasMerged { @@ -362,16 +365,21 @@ func ViewPullFiles(ctx *context.Context) { return } - headTarget := path.Join(pull.HeadUserName, pull.HeadRepo.Name) ctx.Data["IsSplitStyle"] = ctx.Query("style") == "split" - ctx.Data["Username"] = pull.HeadUserName - ctx.Data["Reponame"] = pull.HeadRepo.Name ctx.Data["IsImageFile"] = commit.IsImageFile - ctx.Data["SourcePath"] = setting.AppSubUrl + "/" + path.Join(headTarget, "src", endCommitID) - ctx.Data["BeforeSourcePath"] = setting.AppSubUrl + "/" + path.Join(headTarget, "src", startCommitID) - ctx.Data["RawPath"] = setting.AppSubUrl + "/" + path.Join(headTarget, "raw", endCommitID) - ctx.Data["RequireHighlightJS"] = true + // It is possible head repo has been deleted for merged pull requests + if pull.HeadRepo != nil { + ctx.Data["Username"] = pull.HeadUserName + ctx.Data["Reponame"] = pull.HeadRepo.Name + + headTarget := path.Join(pull.HeadUserName, pull.HeadRepo.Name) + ctx.Data["SourcePath"] = setting.AppSubUrl + "/" + path.Join(headTarget, "src", endCommitID) + ctx.Data["BeforeSourcePath"] = setting.AppSubUrl + "/" + path.Join(headTarget, "src", startCommitID) + ctx.Data["RawPath"] = setting.AppSubUrl + "/" + path.Join(headTarget, "raw", endCommitID) + } + + ctx.Data["RequireHighlightJS"] = true ctx.HTML(200, PULL_FILES) } @@ -387,11 +395,7 @@ func MergePullRequest(ctx *context.Context) { pr, err := models.GetPullRequestByIssueID(issue.ID) if err != nil { - if models.IsErrPullRequestNotExist(err) { - ctx.Handle(404, "GetPullRequestByIssueID", nil) - } else { - ctx.Handle(500, "GetPullRequestByIssueID", err) - } + ctx.NotFoundOrServerError("GetPullRequestByIssueID", models.IsErrPullRequestNotExist, err) return } |